1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // Copyright David Abrahams, Daniel Wallin 2003.
- // Distributed under the Boost Software License, Version 1.0.
- // (See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- #ifndef BOOST_PARAMETER_AUX_PACK_ITEM_HPP
- #define BOOST_PARAMETER_AUX_PACK_ITEM_HPP
- #include <boost/parameter/aux_/void.hpp>
- #include <boost/config.hpp>
- #include <boost/config/workaround.hpp>
- #if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564))
- #include <boost/type_traits/is_const.hpp>
- #include <boost/type_traits/remove_reference.hpp>
- #endif
- namespace boost { namespace parameter { namespace aux {
- // A parameter spec item typelist.
- template <
- typename Spec
- , typename Arg
- , typename Tail = ::boost::parameter::void_
- >
- struct item
- {
- typedef Spec spec;
- #if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564))
- typedef ::boost::is_const<
- typename ::boost::remove_reference<Arg>::type
- > is_arg_const;
- #endif
- typedef Arg arg;
- typedef Tail tail;
- };
- template <typename Spec, typename Arg, typename Tail>
- struct make_item
- {
- typedef boost::parameter::aux
- ::item<Spec,Arg,typename Tail::type> type;
- };
- }}} // namespace boost::parameter::aux
- #endif // include guard
|