
Howard Hinnant wrote:
The error message is saying that
boost::operator >= (ptr_container_detail::reversible_ptr_container< ... animal...>, ...)
is being instantiated.
If I were to guess, it would be some kind of concepts check. ptr_container_detail::reversible_ptr_container does derive from less_than_comparable.
[...] Actually, it's instantiated here: bool operator<( const reversible_ptr_container& r ) const // nothrow { return std::lexicographical_compare( begin(), end(), r.begin(), r.end() ); } which again is instantiated here: template <class T, class B = ::boost::detail::empty_base> struct less_than_comparable1 : B { friend bool operator>(const T& x, const T& y) { return y < x; } friend bool operator<=(const T& x, const T& y) { return !(y < x); } friend bool operator>=(const T& x, const T& y) { return !(x < y); } }; Stefan