1 // Copyright David Abrahams 2005. Distributed under the Boost 2 // Software License, Version 1.0. (See accompanying 3 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 #ifndef BOOST_PARAMETER_AUX_TAG_DWA2005610_HPP 5 # define BOOST_PARAMETER_AUX_TAG_DWA2005610_HPP 6 7 # include <boost/parameter/aux_/unwrap_cv_reference.hpp> 8 # include <boost/parameter/aux_/tagged_argument.hpp> 9 10 namespace boost { namespace parameter { namespace aux { 11 12 template <class Keyword, class ActualArg 13 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) 14 , class = typename is_cv_reference_wrapper<ActualArg>::type 15 #endif 16 > 17 struct tag 18 { 19 typedef tagged_argument< 20 Keyword 21 , typename unwrap_cv_reference<ActualArg>::type 22 > type; 23 }; 24 25 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) 26 template <class Keyword, class ActualArg> 27 struct tag<Keyword,ActualArg,mpl::false_> 28 { 29 typedef tagged_argument< 30 Keyword 31 , ActualArg 32 > type; 33 }; 34 #endif 35 36 }}} // namespace boost::parameter::aux_ 37 38 #endif // BOOST_PARAMETER_AUX_TAG_DWA2005610_HPP 39