← Back
Editing: interval_type_default.hpp
/*-----------------------------------------------------------------------------+ Copyright (c) 2010-2010: Joachim Faulhaber +------------------------------------------------------------------------------+ Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENCE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +-----------------------------------------------------------------------------*/ #ifndef BOOST_ICL_TYPE_TRAITS_INTERVAL_TYPE_DEFAULT_HPP_JOFA_100403 #define BOOST_ICL_TYPE_TRAITS_INTERVAL_TYPE_DEFAULT_HPP_JOFA_100403 #include <boost/mpl/if.hpp> #include <boost/icl/detail/design_config.hpp> #include <boost/icl/continuous_interval.hpp> #include <boost/icl/discrete_interval.hpp> #include <boost/icl/right_open_interval.hpp> #include <boost/icl/left_open_interval.hpp> #include <boost/icl/closed_interval.hpp> #include <boost/icl/open_interval.hpp> #include <boost/icl/type_traits/is_continuous.hpp> #include <boost/icl/type_traits/is_discrete.hpp> namespace boost{ namespace icl { template <class DomainT, ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(ICL_COMPARE_DEFAULT, DomainT)> struct interval_type_default { #ifdef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS typedef typename mpl::if_< is_discrete<DomainT> # ifdef BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT , BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT<DomainT,Compare> # else , right_open_interval<DomainT,Compare> # endif # ifdef BOOST_ICL_CONTINUOUS_STATIC_INTERVAL_DEFAULT , BOOST_ICL_CONTINUOUS_STATIC_INTERVAL_DEFAULT<DomainT,Compare> # else , right_open_interval<DomainT,Compare> # endif >::type type; #else typedef typename mpl::if_< is_discrete<DomainT> , discrete_interval<DomainT,Compare> , continuous_interval<DomainT,Compare> >::type type; #endif }; }} // namespace boost icl #endif
Save File
Cancel