|
Boost : |
Subject: Re: [boost] Review Request: Boost.Itl; The Interval Template Library
From: Jeff Flinn (TriumphSprint2000_at_[hidden])
Date: 2009-09-25 08:19:00
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk