// Copyright Daniel Wallin 2006. // 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_NAME_HPP #define BOOST_PARAMETER_AUX_NAME_HPP namespace boost { namespace parameter { namespace aux { struct name_tag_base { }; template struct name_tag { }; }}} // namespace boost::parameter::aux #include namespace boost { namespace parameter { namespace aux { template struct is_name_tag : ::boost::mpl::false_ { }; }}} // namespace boost::parameter::aux #include #include #include #include #if !defined(BOOST_NO_SFINAE) && \ !BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x592)) #include #include #include #include #include namespace boost { namespace mpl { template struct lambda< T , typename ::boost::enable_if< ::boost::parameter::aux::is_name_tag , ::boost::parameter::aux::lambda_tag >::type > { typedef ::boost::mpl::true_ is_le; typedef ::boost::mpl::bind3< ::boost::mpl::quote3< ::boost::parameter::value_type> , ::boost::mpl::arg<2> , T , void > result_; typedef result_ type; }; }} // namespace boost::mpl #endif // SFINAE enabled, not Borland. #include #define BOOST_PARAMETER_TAG_PLACEHOLDER_TYPE(tag) \ ::boost::parameter::value_type< \ ::boost::mpl::_2,tag,::boost::parameter::void_ \ > /**/ #if defined(BOOST_PARAMETER_CAN_USE_MP11) #define BOOST_PARAMETER_TAG_MP11_PLACEHOLDER_VALUE(name, tag) \ template \ using name = typename ::boost::parameter \ ::value_type::type /**/ #include #define BOOST_PARAMETER_TAG_MP11_PLACEHOLDER_BINDING(name, tag) \ template \ using name = typename ::boost::parameter \ ::binding::type /**/ #endif // BOOST_PARAMETER_CAN_USE_MP11 #endif // include guard