
2011/3/7 John Reid
On 07/03/11 14:49, John Reid wrote:
#include
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.
Also operator== does not seem to work on closed and open intervals, e.g.
icl::closed_interval< float >() == icl::closed_interval< float >()
does not compile.
Hi John! thanks for your thorough work on the many instances of ICL class templates. The compilation failures of the current examples icl::closed_interval< float >() icl::open_interval< float >() are by design again. The related information can be found in the docs http://www.boost.org/doc/libs/1_46_0/libs/icl/doc/html/boost_icl/interface.h... in: Table 1.6. Usability of interval class templates for discrete or continuous domain types. The reason for this: All icl interval objects, that can be constructed are supposed to work with interval containers. If I have an interval set {[0.0, 2.0]} of a continuous domain type using statically bounded closed intervals and I want to subtract another closed interval {[0.0, 2.0]} - [1.0, 1.0] I am unable to represent the result {[0.0, 1.0),(1.0, 2.0]} with the same kind of statically bounded interval. Therefore I don't allow statically bounded closed and open intervals (the symmetric interval types) to be instantiated with continuous types. Thanks again Joachim -- Interval Container Library [Boost.Icl] http://www.joachim-faulhaber.de