#include <boost/assert.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/and.hpp>
#include <boost/mpl/or.hpp>
#include <boost/mpl/not.hpp>
#include <boost/icl/detail/design_config.hpp>
#include <boost/icl/type_traits/unit_element.hpp>
#include <boost/icl/type_traits/identity_element.hpp>
#include <boost/icl/type_traits/infinity.hpp>
#include <boost/icl/type_traits/succ_pred.hpp>
#include <boost/icl/type_traits/is_numeric.hpp>
#include <boost/icl/type_traits/is_discrete.hpp>
#include <boost/icl/type_traits/is_continuous.hpp>
#include <boost/icl/type_traits/is_asymmetric_interval.hpp>
#include <boost/icl/type_traits/is_discrete_interval.hpp>
#include <boost/icl/type_traits/is_continuous_interval.hpp>
#include <boost/icl/concept/interval_bounds.hpp>
#include <boost/icl/interval_traits.hpp>
#include <boost/icl/dynamic_interval_traits.hpp>
Namespaces | |
boost | |
Duration formatting facet for input. | |
boost::icl | |
boost::icl::detail | |
boost::icl::non_empty | |
Functions | |
template<class Type > | |
enable_if< is_interval< Type > , bool >::type | boost::icl::domain_less (const typename interval_traits< Type >::domain_type &left, const typename interval_traits< Type >::domain_type &right) |
template<class Type > | |
enable_if< is_interval< Type > , bool >::type | boost::icl::domain_less_equal (const typename interval_traits< Type >::domain_type &left, const typename interval_traits< Type >::domain_type &right) |
template<class Type > | |
enable_if< is_interval< Type > , bool >::type | boost::icl::domain_equal (const typename interval_traits< Type >::domain_type &left, const typename interval_traits< Type >::domain_type &right) |
template<class Type > | |
enable_if< is_interval< Type > , typename interval_traits < Type >::domain_type >::type | boost::icl::domain_next (const typename interval_traits< Type >::domain_type value) |
template<class Type > | |
enable_if< is_interval< Type > , typename interval_traits < Type >::domain_type >::type | boost::icl::domain_prior (const typename interval_traits< Type >::domain_type value) |
template<class Type > | |
enable_if< mpl::and_ < is_static_right_open< Type > , is_discrete< typename interval_traits< Type > ::domain_type > >, Type > ::type | boost::icl::singleton (const typename interval_traits< Type >::domain_type &value) |
template<class Type > | |
enable_if< mpl::and_ < is_static_left_open< Type > , is_discrete< typename interval_traits< Type > ::domain_type > >, Type > ::type | boost::icl::singleton (const typename interval_traits< Type >::domain_type &value) |
template<class Type > | |
enable_if < is_discrete_static_open < Type >, Type >::type | boost::icl::singleton (const typename interval_traits< Type >::domain_type &value) |
template<class Type > | |
enable_if < is_discrete_static_closed < Type >, Type >::type | boost::icl::singleton (const typename interval_traits< Type >::domain_type &value) |
template<class Type > | |
enable_if< has_dynamic_bounds < Type >, Type >::type | boost::icl::singleton (const typename interval_traits< Type >::domain_type &value) |
template<class Type > | |
enable_if< mpl::and_ < is_static_right_open< Type > , boost::detail::is_incrementable < typename interval_traits < Type >::domain_type > >, Type >::type | boost::icl::detail::unit_trail (const typename interval_traits< Type >::domain_type &value) |
template<class Type > | |
enable_if< mpl::and_ < is_static_left_open< Type > , boost::detail::is_incrementable < typename interval_traits < Type >::domain_type > >, Type >::type | boost::icl::detail::unit_trail (const typename interval_traits< Type >::domain_type &value) |
template<class Type > | |
enable_if< mpl::and_ < is_static_open< Type > , is_discrete< typename interval_traits< Type > ::domain_type > >, Type > ::type | boost::icl::detail::unit_trail (const typename interval_traits< Type >::domain_type &value) |
template<class Type > | |
enable_if< mpl::and_ < is_static_closed< Type > , is_discrete< typename interval_traits< Type > ::domain_type > >, Type > ::type | boost::icl::detail::unit_trail (const typename interval_traits< Type >::domain_type &value) |
template<class Type > | |
enable_if< has_dynamic_bounds < Type >, Type >::type | boost::icl::detail::unit_trail (const typename interval_traits< Type >::domain_type &value) |
template<class Type > | |
enable_if< has_static_bounds < Type >, Type >::type | boost::icl::construct (const typename interval_traits< Type >::domain_type &low, const typename interval_traits< Type >::domain_type &up) |
template<class Type > | |
enable_if< has_dynamic_bounds < Type >, Type >::type | boost::icl::construct (const typename interval_traits< Type >::domain_type &low, const typename interval_traits< Type >::domain_type &up, interval_bounds bounds=interval_bounds::right_open()) |
template<class Type > | |
enable_if< has_dynamic_bounds < Type >, Type >::type | boost::icl::construct (const typename Type::bounded_domain_type &low, const typename Type::bounded_domain_type &up) |
template<class Type > | |
enable_if< is_interval< Type > , Type >::type | boost::icl::span (const typename interval_traits< Type >::domain_type &left, const typename interval_traits< Type >::domain_type &right) |
template<class Type > | |
enable_if < is_static_right_open< Type > , Type >::type | boost::icl::hull (const typename interval_traits< Type >::domain_type &left, const typename interval_traits< Type >::domain_type &right) |
template<class Type > | |
enable_if< is_static_left_open < Type >, Type >::type | boost::icl::hull (const typename interval_traits< Type >::domain_type &left, const typename interval_traits< Type >::domain_type &right) |
template<class Type > | |
enable_if< is_static_closed < Type >, Type >::type | boost::icl::hull (const typename interval_traits< Type >::domain_type &left, const typename interval_traits< Type >::domain_type &right) |
template<class Type > | |
enable_if< is_static_open < Type >, Type >::type | boost::icl::hull (const typename interval_traits< Type >::domain_type &left, const typename interval_traits< Type >::domain_type &right) |
template<class Type > | |
enable_if< has_dynamic_bounds < Type >, Type >::type | boost::icl::hull (const typename interval_traits< Type >::domain_type &left, const typename interval_traits< Type >::domain_type &right) |
template<class Type > | |
enable_if< is_interval< Type > , typename interval_traits < Type >::domain_type >::type | boost::icl::lower (const Type &object) |
template<class Type > | |
enable_if< is_interval< Type > , typename interval_traits < Type >::domain_type >::type | boost::icl::upper (const Type &object) |
template<class Type > | |
enable_if< mpl::or_ < is_static_right_open< Type > , is_static_closed< Type > >, typename interval_traits < Type >::domain_type >::type | boost::icl::first (const Type &object) |
template<class Type > | |
enable_if< mpl::and_< mpl::or_ < is_static_left_open< Type > , is_static_open< Type > >, is_discrete< typename interval_traits< Type > ::domain_type > >, typename interval_traits< Type > ::domain_type >::type | boost::icl::first (const Type &object) |
template<class Type > | |
enable_if < is_discrete_interval< Type > , typename interval_traits < Type >::domain_type >::type | boost::icl::first (const Type &object) |
template<class Type > | |
enable_if< mpl::or_ < is_static_left_open< Type > , is_static_closed< Type > >, typename interval_traits < Type >::domain_type >::type | boost::icl::last (const Type &object) |
template<class Type > | |
enable_if< mpl::and_< mpl::or_ < is_static_right_open< Type > , is_static_open< Type > >, is_discrete< typename interval_traits< Type > ::domain_type > >, typename interval_traits< Type > ::domain_type >::type | boost::icl::last (const Type &object) |
template<class Type > | |
enable_if < is_discrete_interval< Type > , typename interval_traits < Type >::domain_type >::type | boost::icl::last (const Type &object) |
template<class Type > | |
enable_if< mpl::and_< mpl::or_ < is_static_left_open< Type > , is_static_closed< Type > >, is_discrete< typename interval_traits< Type > ::domain_type > >, typename interval_traits< Type > ::domain_type >::type | boost::icl::last_next (const Type &object) |
template<class Type > | |
enable_if< mpl::and_< mpl::or_ < is_static_right_open< Type > , is_static_open< Type > >, is_discrete< typename interval_traits< Type > ::domain_type > >, typename interval_traits< Type > ::domain_type >::type | boost::icl::last_next (const Type &object) |
template<class Type > | |
enable_if < is_discrete_interval< Type > , typename interval_traits < Type >::domain_type >::type | boost::icl::last_next (const Type &object) |
template<class Type > | |
enable_if< has_dynamic_bounds < Type >, typename Type::bounded_domain_type > ::type | boost::icl::bounded_lower (const Type &object) |
template<class Type > | |
enable_if< has_dynamic_bounds < Type >, typename Type::bounded_domain_type > ::type | boost::icl::reverse_bounded_lower (const Type &object) |
template<class Type > | |
enable_if< has_dynamic_bounds < Type >, typename Type::bounded_domain_type > ::type | boost::icl::bounded_upper (const Type &object) |
template<class Type > | |
enable_if< has_dynamic_bounds < Type >, typename Type::bounded_domain_type > ::type | boost::icl::reverse_bounded_upper (const Type &object) |
template<class Type > | |
enable_if< has_dynamic_bounds < Type >, interval_bounds > ::type | boost::icl::bounds (const Type &object) |
template<class Type > | |
enable_if< has_static_bounds < Type >, interval_bounds > ::type | boost::icl::bounds (const Type &) |
template<class Type > | |
boost::enable_if < is_asymmetric_interval< Type > , bool >::type | boost::icl::is_empty (const Type &object) |
Is the interval empty? More... | |
template<class Type > | |
boost::enable_if < is_static_closed< Type > , bool >::type | boost::icl::is_empty (const Type &object) |
template<class Type > | |
boost::enable_if < is_static_open< Type >, bool > ::type | boost::icl::is_empty (const Type &object) |
template<class Type > | |
boost::enable_if < is_discrete_interval< Type > , bool >::type | boost::icl::is_empty (const Type &object) |
template<class Type > | |
boost::enable_if < is_continuous_interval< Type > , bool >::type | boost::icl::is_empty (const Type &object) |
template<class Type > | |
boost::enable_if < is_asymmetric_interval< Type > , bool >::type | boost::icl::non_empty::exclusive_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_discrete_interval< Type > , bool >::type | boost::icl::non_empty::exclusive_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_symmetric_bounds< Type > , bool >::type | boost::icl::non_empty::exclusive_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_continuous_interval< Type > , bool >::type | boost::icl::non_empty::exclusive_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if< is_interval < Type >, bool >::type | boost::icl::non_empty::contains (const Type &super, const Type &sub) |
template<class Type > | |
boost::enable_if< is_interval < Type >, bool >::type | boost::icl::contains (const Type &super, const Type &sub) |
template<class Type > | |
boost::enable_if < is_discrete_static< Type > , bool >::type | boost::icl::contains (const Type &super, const typename interval_traits< Type >::domain_type &element) |
template<class Type > | |
boost::enable_if < is_continuous_left_open < Type >, bool >::type | boost::icl::contains (const Type &super, const typename interval_traits< Type >::domain_type &element) |
template<class Type > | |
boost::enable_if < is_continuous_right_open < Type >, bool >::type | boost::icl::contains (const Type &super, const typename interval_traits< Type >::domain_type &element) |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , bool >::type | boost::icl::contains (const Type &super, const typename interval_traits< Type >::domain_type &element) |
template<class Type > | |
boost::enable_if< is_interval < Type >, bool >::type | boost::icl::within (const Type &sub, const Type &super) |
template<class Type > | |
boost::enable_if < is_asymmetric_interval< Type > , bool >::type | boost::icl::exclusive_less (const Type &left, const Type &right) |
Maximal element of left is less than the minimal element of right More... | |
template<class Type > | |
boost::enable_if < is_discrete_interval< Type > , bool >::type | boost::icl::exclusive_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_symmetric_bounds< Type > , bool >::type | boost::icl::exclusive_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_continuous_interval< Type > , bool >::type | boost::icl::exclusive_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_static_bounds< Type > , bool >::type | boost::icl::lower_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_discrete_interval< Type > , bool >::type | boost::icl::lower_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_continuous_interval< Type > , bool >::type | boost::icl::lower_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_static_bounds< Type > , bool >::type | boost::icl::upper_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_discrete_interval< Type > , bool >::type | boost::icl::upper_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_continuous_interval< Type > , bool >::type | boost::icl::upper_less (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , typename Type::bounded_domain_type > ::type | boost::icl::lower_min (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , typename Type::bounded_domain_type > ::type | boost::icl::lower_max (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , typename Type::bounded_domain_type > ::type | boost::icl::upper_max (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , typename Type::bounded_domain_type > ::type | boost::icl::upper_min (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_asymmetric_interval< Type > , bool >::type | boost::icl::lower_equal (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_symmetric_bounds< Type > , bool >::type | boost::icl::lower_equal (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_discrete_interval< Type > , bool >::type | boost::icl::lower_equal (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_continuous_interval< Type > , bool >::type | boost::icl::lower_equal (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_asymmetric_interval< Type > , bool >::type | boost::icl::upper_equal (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_symmetric_bounds< Type > , bool >::type | boost::icl::upper_equal (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_discrete_interval< Type > , bool >::type | boost::icl::upper_equal (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_continuous_interval< Type > , bool >::type | boost::icl::upper_equal (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if< is_interval < Type >, bool >::type | boost::icl::lower_less_equal (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if< is_interval < Type >, bool >::type | boost::icl::upper_less_equal (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if< is_interval < Type >, bool >::type | boost::icl::operator== (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if< is_interval < Type >, bool >::type | boost::icl::operator!= (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if< is_interval < Type >, bool >::type | boost::icl::operator< (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if< is_interval < Type >, bool >::type | boost::icl::operator> (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_asymmetric_interval< Type > , bool >::type | boost::icl::touches (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_symmetric_bounds< Type > , bool >::type | boost::icl::touches (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_discrete_interval< Type > , bool >::type | boost::icl::touches (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_continuous_interval< Type > , bool >::type | boost::icl::touches (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_continuous_interval< Type > , typename size_type_of < interval_traits< Type > >::type >::type | boost::icl::cardinality (const Type &object) |
template<class Type > | |
boost::enable_if < is_discrete_interval< Type > , typename size_type_of < interval_traits< Type > >::type >::type | boost::icl::cardinality (const Type &object) |
template<class Type > | |
boost::enable_if < is_continuous_asymmetric < Type >, typename size_type_of< interval_traits < Type > >::type >::type | boost::icl::cardinality (const Type &object) |
template<class Type > | |
boost::enable_if < is_discrete_asymmetric< Type > , typename size_type_of < interval_traits< Type > >::type >::type | boost::icl::cardinality (const Type &object) |
template<class Type > | |
boost::enable_if < has_symmetric_bounds< Type > , typename size_type_of < interval_traits< Type > >::type >::type | boost::icl::cardinality (const Type &object) |
template<class Type > | |
enable_if< is_interval< Type > , typename size_type_of < interval_traits< Type > >::type >::type | boost::icl::size (const Type &object) |
template<class Type > | |
boost::enable_if < is_continuous_interval< Type > , typename difference_type_of < interval_traits< Type > >::type >::type | boost::icl::length (const Type &object) |
template<class Type > | |
boost::enable_if < is_discrete_interval< Type > , typename difference_type_of < interval_traits< Type > >::type >::type | boost::icl::length (const Type &object) |
template<class Type > | |
boost::enable_if < is_continuous_asymmetric < Type >, typename difference_type_of < interval_traits< Type > >::type >::type | boost::icl::length (const Type &object) |
template<class Type > | |
boost::enable_if < is_discrete_static< Type > , typename difference_type_of < interval_traits< Type > >::type >::type | boost::icl::length (const Type &object) |
template<class Type > | |
enable_if< is_interval< Type > , typename size_type_of < interval_traits< Type > >::type >::type | boost::icl::iterative_size (const Type &) |
template<class Type > | |
boost::enable_if < has_static_bounds< Type > , Type >::type | boost::icl::hull (Type left, const Type &right) |
hull returns the smallest interval containing left and right . More... | |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , Type >::type | boost::icl::hull (Type left, const Type &right) |
template<class Type > | |
boost::enable_if < is_asymmetric_interval< Type > , Type >::type | boost::icl::left_subtract (Type right, const Type &left_minuend) |
subtract left_minuend from the right interval on it's left side. More... | |
template<class Type > | |
boost::enable_if < is_static_closed< Type > , Type >::type | boost::icl::left_subtract (Type right, const Type &left_minuend) |
template<class Type > | |
boost::enable_if < is_static_open< Type >, Type > ::type | boost::icl::left_subtract (Type right, const Type &left_minuend) |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , Type >::type | boost::icl::left_subtract (Type right, const Type &left_minuend) |
template<class Type > | |
boost::enable_if < is_asymmetric_interval< Type > , Type >::type | boost::icl::right_subtract (Type left, const Type &right_minuend) |
subtract right_minuend from the left interval on it's right side. More... | |
template<class Type > | |
boost::enable_if < is_static_closed< Type > , Type >::type | boost::icl::right_subtract (Type left, const Type &right_minuend) |
template<class Type > | |
boost::enable_if < is_static_open< Type >, Type > ::type | boost::icl::right_subtract (Type left, const Type &right_minuend) |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , Type >::type | boost::icl::right_subtract (Type left, const Type &right_minuend) |
template<class Type > | |
boost::enable_if < is_asymmetric_interval< Type > , Type >::type | boost::icl::operator& (Type left, const Type &right) |
Returns the intersection of left and right interval. More... | |
template<class Type > | |
boost::enable_if < has_symmetric_bounds< Type > , Type >::type | boost::icl::operator& (Type left, const Type &right) |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , Type >::type | boost::icl::operator& (Type left, const Type &right) |
template<class Type > | |
boost::enable_if< is_interval < Type >, bool >::type | boost::icl::intersects (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if< is_interval < Type >, bool >::type | boost::icl::disjoint (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_asymmetric_interval< Type > , Type >::type | boost::icl::inner_complement (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_discrete_static_closed < Type >, Type >::type | boost::icl::inner_complement (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < is_discrete_static_open < Type >, Type >::type | boost::icl::inner_complement (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , Type >::type | boost::icl::inner_complement (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if< is_interval < Type >, Type >::type | boost::icl::between (const Type &left, const Type &right) |
template<class Type > | |
boost::enable_if< mpl::and_ < is_interval< Type > , has_difference< typename interval_traits< Type > ::domain_type >, is_discrete < typename interval_traits < Type >::domain_type > >, typename difference_type_of < interval_traits< Type > >::type >::type | boost::icl::distance (const Type &x1, const Type &x2) |
template<class Type > | |
boost::enable_if< mpl::and_ < is_interval< Type > , has_difference< typename interval_traits< Type > ::domain_type >, is_continuous < typename interval_traits < Type >::domain_type > >, typename difference_type_of < interval_traits< Type > >::type >::type | boost::icl::distance (const Type &x1, const Type &x2) |
template<class Type > | |
boost::enable_if< mpl::or_ < is_static_left_open< Type > , is_static_open< Type > >, std::string >::type | boost::icl::left_bracket (const Type &) |
template<class Type > | |
boost::enable_if< mpl::or_ < is_static_right_open< Type > , is_static_closed< Type > >, std::string >::type | boost::icl::left_bracket (const Type &) |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , std::string >::type | boost::icl::left_bracket (const Type &object) |
template<class Type > | |
boost::enable_if< mpl::or_ < is_static_right_open< Type > , is_static_open< Type > >, std::string >::type | boost::icl::right_bracket (const Type &) |
template<class Type > | |
boost::enable_if< mpl::or_ < is_static_left_open< Type > , is_static_closed< Type > >, std::string >::type | boost::icl::right_bracket (const Type &) |
template<class Type > | |
boost::enable_if < has_dynamic_bounds< Type > , std::string >::type | boost::icl::right_bracket (const Type &object) |
template<class CharType , class CharTraits , class Type > | |
boost::enable_if< is_interval < Type >, std::basic_ostream < CharType, CharTraits > >::type & | boost::icl::operator<< (std::basic_ostream< CharType, CharTraits > &stream, Type const &object) |