Added boost header
This commit is contained in:
47
test/external/boost/parameter/aux_/template_keyword.hpp
vendored
Normal file
47
test/external/boost/parameter/aux_/template_keyword.hpp
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
// Copyright Daniel Wallin 2006. Use, modification and distribution is
|
||||
// subject to 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_TEMPLATE_KEYWORD_060203_HPP
|
||||
# define BOOST_PARAMETER_TEMPLATE_KEYWORD_060203_HPP
|
||||
|
||||
# include <boost/mpl/and.hpp>
|
||||
# include <boost/mpl/not.hpp>
|
||||
# include <boost/type_traits/is_convertible.hpp>
|
||||
# include <boost/type_traits/is_reference.hpp>
|
||||
|
||||
namespace boost { namespace parameter {
|
||||
|
||||
namespace aux
|
||||
{
|
||||
|
||||
struct template_keyword_tag {};
|
||||
|
||||
template <class T, class U>
|
||||
struct is_pointer_convertible
|
||||
: is_convertible<T*, U*>
|
||||
{};
|
||||
|
||||
template <class T>
|
||||
struct is_template_keyword
|
||||
: mpl::and_<
|
||||
mpl::not_<is_reference<T> >
|
||||
, is_pointer_convertible<T, template_keyword_tag>
|
||||
>
|
||||
{};
|
||||
|
||||
} // namespace aux
|
||||
|
||||
template <class Tag, class T>
|
||||
struct template_keyword
|
||||
: aux::template_keyword_tag
|
||||
{
|
||||
typedef Tag key_type;
|
||||
typedef T value_type;
|
||||
typedef value_type reference;
|
||||
};
|
||||
|
||||
}} // namespace boost::parameter
|
||||
|
||||
#endif // BOOST_PARAMETER_TEMPLATE_KEYWORD_060203_HPP
|
||||
|
||||
Reference in New Issue
Block a user