
Jeff Flinn wrote:
Joachim Faulhaber wrote:
...
map& map::add(const value_type&);
and then an overloaded member function template
private: template<class Combiner> map& map::add(const value_type&);
so I changed the names of those private member function templates adding a leading underscore '_add'. The code looses some simplicity but it compiles and works with msvc and gcc.
I hope this works for the warrior too and he can be appeased soon ;-)
Yep, that worked for both add & subtract private methods. I now get a complete compile, of course that's just with the #include <boost/itl/split_interval_map.hpp>. Now to actually instantiate some code. :-).
Ok, I get an "ambiguous use of partial specialization" compiler error when I add the last line below: { typedef boost::itl::interval_map<int, int> OverlapCounterT; OverlapCounterT overlap_counter; boost::itl::interval<int> itv; itv = boost::itl::interval<int>::rightopen(4,8); overlap_counter += std::make_pair(boost::itl::interval<int>::rightopen(4,8), 1); } the compiler error text is: Error : ambiguous use of partial specialization (point of instantiation: 'CoverageGraphIntervalsTest::testTopology()') (instantiating: 'boost::enable_if<boost::itl::is_intra_derivative<boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>, std::pair<boost::itl::interval<int, std::less>, int>>, boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>>') (instantiating: 'boost::itl::is_intra_derivative<boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>, std::pair<boost::itl::interval<int, std::less>, int>>') (instantiating: 'boost::mpl::or_<boost::mpl::and_<boost::itl::is_interval_set<boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>>, boost::itl::is_interval_set_derivative<boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>, std::pair<boost::itl::interval<int, std::less>, int>>, boost::mpl::bool_<true>, boost::mpl::bool_<true>, boost::mpl::bool_<true>>, boost::mpl::and_<boost::itl::is_interval_map<boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>>, boost::itl::is_interval_map_derivative<boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>, std::pair<boost::itl::interval<int, std::less>, int>>, boost::mpl::bool_<true>, boost::mpl::bool_<true>, boost::mpl::bool_<true>>, boost::mpl::bool_<false>, boost::mpl::bool_<false>, boost::mpl::bool_<false>>') (instantiating: 'boost::mpl::aux::or_impl<false, boost::mpl::and_<boost::itl::is_interval_map<boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>>, boost::itl::is_interval_map_derivative<boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>, std::pair<boost::itl::interval<int, std::less>, int>>, boost::mpl::bool_<true>, boost::mpl::bool_<true>, boost::mpl::bool_<true>>, boost::mpl::bool_<false>, boost::mpl::bool_<false>, boost::mpl::bool_<false>>') (instantiating: 'boost::mpl::and_<boost::itl::is_interval_map<boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>>, boost::itl::is_interval_map_derivative<boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>, std::pair<boost::itl::interval<int, std::less>, int>>, boost::mpl::bool_<true>, boost::mpl::bool_<true>, boost::mpl::bool_<true>>') (instantiating: 'boost::mpl::aux::and_impl<true, boost::itl::is_interval_map_derivative<boost::itl::interval_map<int, int, boost::itl::partial_absorber, std::less, boost::itl::inplace_plus, boost::itl::inplace_et, boost::itl::interval, std::allocator>, std::pair<boost::itl::interval<int, std::less>, int>>, boost::mpl::bool_<true>, boost::mpl::bool_<true>, boost::mpl::bool_<true>>') and.hpp line 28 > Jeff