File indexing completed on 2025-01-18 09:43:26
0001
0002
0003
0004
0005
0006 #ifndef BOOST_PARAMETER_AUX_PACK_ITEM_HPP
0007 #define BOOST_PARAMETER_AUX_PACK_ITEM_HPP
0008
0009 #include <boost/parameter/aux_/void.hpp>
0010 #include <boost/config.hpp>
0011 #include <boost/config/workaround.hpp>
0012
0013 #if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564))
0014 #include <boost/type_traits/is_const.hpp>
0015 #include <boost/type_traits/remove_reference.hpp>
0016 #endif
0017
0018 namespace boost { namespace parameter { namespace aux {
0019
0020
0021 template <
0022 typename Spec
0023 , typename Arg
0024 , typename Tail = ::boost::parameter::void_
0025 >
0026 struct item
0027 {
0028 typedef Spec spec;
0029 #if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564))
0030 typedef ::boost::is_const<
0031 typename ::boost::remove_reference<Arg>::type
0032 > is_arg_const;
0033 #endif
0034 typedef Arg arg;
0035 typedef Tail tail;
0036 };
0037
0038 template <typename Spec, typename Arg, typename Tail>
0039 struct make_item
0040 {
0041 typedef boost::parameter::aux
0042 ::item<Spec,Arg,typename Tail::type> type;
0043 };
0044 }}}
0045
0046 #endif
0047