+-----------------------------------------------------------------------------*/ #ifndef BOOST_ICL_RIGHT_OPEN_INTERVAL_HPP_JOFA_100323 #define BOOST_ICL_RIGHT_OPEN_INTERVAL_HPP_JOFA_100323 #include <functional> #include <boost/concept/assert.hpp> #include <boost/icl/concept/interval.hpp> #include <boost/icl/type_traits/succ_pred.hpp> #include <boost/icl/type_traits/value_size.hpp> #include <boost/icl/type_traits/type_to_string.hpp> namespace boost{namespace icl { template <class DomainT, ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, DomainT)> class right_open_interval { public: typedef right_open_interval<DomainT,Compare> type; typedef DomainT domain_type; public: //========================================================================== //= Construct, copy, destruct //========================================================================== /** Default constructor; yields an empty interval <tt>[0,0)</tt>. */ right_open_interval() : _lwb(identity_element<DomainT>::value()), _upb(identity_element<DomainT>::value()) { BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
+-----------------------------------------------------------------------------*/ #ifndef BOOST_ICL_INTERVAL_SET_HPP_JOFA_990223 #define BOOST_ICL_INTERVAL_SET_HPP_JOFA_990223 #include <boost/assert.hpp> #include <boost/icl/type_traits/is_interval_joiner.hpp> #include <boost/icl/interval_base_set.hpp> namespace boost{namespace icl { /** \brief Implements a set as a set of intervals - merging adjoining intervals */ template < typename DomainT, ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(ICL_COMPARE_DEFAULT, DomainT), ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, DomainT, Compare), ICL_ALLOC Alloc = std::allocator > class interval_set: public interval_base_set<interval_set<DomainT,Compare,Interval,Alloc>, DomainT,Compare,Interval,Alloc> { public: typedef interval_set<DomainT,Compare,Interval,Alloc> type; /// The base_type of this class typedef interval_base_set<type,DomainT,Compare,Interval,Alloc> base_type; typedef type overloadable_type;