File indexing completed on 2025-01-18 09:41:44
0001
0002 #ifndef BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED
0003 #define BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include <boost/mpl/long.hpp>
0019 #include <boost/mpl/void.hpp>
0020 #include <boost/mpl/aux_/na.hpp>
0021 #include <boost/mpl/set/aux_/tag.hpp>
0022 #include <boost/mpl/aux_/yes_no.hpp>
0023 #include <boost/mpl/aux_/overload_names.hpp>
0024 #include <boost/mpl/aux_/config/operators.hpp>
0025
0026 #include <boost/preprocessor/cat.hpp>
0027
0028 namespace boost { namespace mpl {
0029
0030 #if defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING)
0031
0032 # define BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \
0033 friend R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \
0034
0035
0036 # define BOOST_MPL_AUX_SET_OVERLOAD(R, f, X, T) \
0037 BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \
0038
0039
0040 #else
0041
0042 # define BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \
0043 static R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \
0044
0045
0046 # define BOOST_MPL_AUX_SET_OVERLOAD(R, f, X, T) \
0047 BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T); \
0048 using Base::BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f) \
0049
0050
0051 #endif
0052
0053 template< typename Dummy = na > struct set0
0054 {
0055 typedef set0<> item_;
0056 typedef item_ type;
0057 typedef aux::set_tag tag;
0058 typedef void_ last_masked_;
0059 typedef void_ item_type_;
0060 typedef long_<0> size;
0061 typedef long_<1> order;
0062
0063 BOOST_MPL_AUX_SET0_OVERLOAD( aux::no_tag, ORDER_BY_KEY, set0<>, void const volatile* );
0064 BOOST_MPL_AUX_SET0_OVERLOAD( aux::yes_tag, IS_MASKED, set0<>, void const volatile* );
0065 };
0066
0067 }}
0068
0069 #endif