
hi thomas,
I now also included pairing_heap and skew_heap in the performance test. However, I get a segfault for pairing_heap when running the "Linear Forward" performance test. That's the place with "// if (0)" in the attached file.
When I uncomment that line, I get the following results (linux32): I now also tried to compile the extended benchmark with MSVC-9 and MSVC-10.
I get a compile error at skew_heap.hpp in line 682:
678: class skew_heap_mutable: 679: public detail::skew_heap<T, store_parent_pointer<true>, A0, A1, A2, A3> 680: { 681: private: 682: typedef detail::skew_heap<T, store_parent_pointer<true>, A0, A1, A2, A3> super_t;
It strikes me as odd that line 679 doesn't generate a compile error, even so it looks nearly identical to me. Perhaps the problem is caused by the fact that detail::skew_heap has a member variable with the name store_parent_pointer? Anyway, I replaced "store_parent_pointer<true>" with "boost::heap::store_parent_pointer<true>" and then everything compiles fine.
thanks! i cannot test with msvc, but only with gcc, clang++ and icc ... will commit this fix ...
Before I did that, I tried my luck with the "address_review" branch/head from the boost_heap git repository (instead of the "master" branch/head). I got a compile error for detail/ordered_adaptor_iterator.hpp for line 51 then (error C2529: 'abstract declarator' : reference to reference is illegal). I looked up in boost::iterator_facade that "class Value" was expected at that position, so I replaced "ValueType const &," with "ValueType," and it compiled fine. However, this fix seems to change the semantics, so I also checked that not just
will have a look at this ... thanks, tim