Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:43:26

0001 // Copyright David Abrahams, Daniel Wallin 2003.
0002 // Distributed under the Boost Software License, Version 1.0.
0003 // (See accompanying file LICENSE_1_0.txt or copy at
0004 // http://www.boost.org/LICENSE_1_0.txt)
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     // A parameter spec item typelist.
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 }}} // namespace boost::parameter::aux
0045 
0046 #endif  // include guard
0047