Chris@16: // Copyright Daniel Wallin 2006. Use, modification and distribution is Chris@16: // subject to the Boost Software License, Version 1.0. (See accompanying Chris@16: // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: #ifndef BOOST_PARAMETER_TEMPLATE_KEYWORD_060203_HPP Chris@16: # define BOOST_PARAMETER_TEMPLATE_KEYWORD_060203_HPP Chris@16: Chris@16: # include Chris@16: # include Chris@16: # include Chris@16: # include Chris@16: Chris@16: namespace boost { namespace parameter { Chris@16: Chris@16: namespace aux Chris@16: { Chris@16: Chris@16: struct template_keyword_tag {}; Chris@16: Chris@16: template Chris@16: struct is_pointer_convertible Chris@16: : is_convertible Chris@16: {}; Chris@16: Chris@16: template Chris@16: struct is_template_keyword Chris@16: : mpl::and_< Chris@16: mpl::not_ > Chris@16: , is_pointer_convertible Chris@16: > Chris@16: {}; Chris@16: Chris@16: } // namespace aux Chris@16: Chris@16: template Chris@16: struct template_keyword Chris@16: : aux::template_keyword_tag Chris@16: { Chris@16: typedef Tag key_type; Chris@16: typedef T value_type; Chris@16: typedef value_type reference; Chris@16: }; Chris@16: Chris@16: }} // namespace boost::parameter Chris@16: Chris@16: #endif // BOOST_PARAMETER_TEMPLATE_KEYWORD_060203_HPP Chris@16: