
#include <boost/icl/interval.hpp> template< typename IntervalT > void check_contains() { IntervalT interval; typedef typename IntervalT::domain_type domain_t; ::boost::icl::contains( interval, domain_t() ); } void h() { namespace icl = ::boost::icl; check_contains< icl::continuous_interval< float > >(); check_contains< icl::discrete_interval< int > >(); check_contains< icl::right_open_interval< float > >(); check_contains< icl::left_open_interval< float > >(); check_contains< icl::closed_interval< float > >(); check_contains< icl::open_interval< float > >(); } The last 2 lines in h() do not compile whilst the preceeding 4 do. Is this by design or a bug? Testing elements for membership of a closed or open interval seems natural enough. I'm using gcc 4.4.3. Thanks, John.