...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::icl::continuous_interval
// In header: <boost/icl/continuous_interval.hpp> template<typename DomainT, ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(ICL_COMPARE_DEFAULT, DomainT)> class continuous_interval { public: // types typedef continuous_interval< DomainT, Compare > type; typedef DomainT domain_type; typedef bounded_value< DomainT >::type bounded_domain_type; // construct/copy/destruct continuous_interval(); explicit continuous_interval(const DomainT &); continuous_interval(const DomainT &, const DomainT &, interval_bounds = interval_bounds::right_open(), continuous_interval * = 0); // public member functions typedef ICL_COMPARE_DOMAIN(Compare, DomainT); domain_type lower() const; domain_type upper() const; interval_bounds bounds() const; // public static functions static continuous_interval open(const DomainT &, const DomainT &); static continuous_interval right_open(const DomainT &, const DomainT &); static continuous_interval left_open(const DomainT &, const DomainT &); static continuous_interval closed(const DomainT &, const DomainT &); };
continuous_interval
public
construct/copy/destructcontinuous_interval();
Default constructor; yields an empty interval [0,0)
.
explicit continuous_interval(const DomainT & val);
Constructor for a closed singleton interval [val,val]
continuous_interval(const DomainT & low, const DomainT & up, interval_bounds bounds = interval_bounds::right_open(), continuous_interval * = 0);
Interval from low
to up
with bounds bounds
continuous_interval
public member functionstypedef ICL_COMPARE_DOMAIN(Compare, DomainT);
domain_type lower() const;
domain_type upper() const;
interval_bounds bounds() const;
continuous_interval
public static functionsstatic continuous_interval open(const DomainT & lo, const DomainT & up);
static continuous_interval right_open(const DomainT & lo, const DomainT & up);
static continuous_interval left_open(const DomainT & lo, const DomainT & up);
static continuous_interval closed(const DomainT & lo, const DomainT & up);