1// Boost.TypeErasure library
2//
3// Copyright 2011 Steven Watanabe
4//
5// Distributed under the Boost Software License Version 1.0. (See
6// accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//
9// $Id$
10
11#ifndef BOOST_TYPE_ERASURE_DETAIL_IS_PLACEHOLDER_HPP_INCLUDED
12#define BOOST_TYPE_ERASURE_DETAIL_IS_PLACEHOLDER_HPP_INCLUDED
13
14#include <boost/mpl/bool.hpp>
15
16namespace boost {
17
18namespace type_erasure {
19
20#ifdef BOOST_TYPE_ERASURE_DOXYGEN
21
22/** A metafunction that indicates whether a type is a @ref placeholder. */
23template<class T>
24struct is_placeholder {};
25
26#else
27
28template<class T, class Enable = void>
29struct is_placeholder : ::boost::mpl::false_ {};
30
31template<class T>
32struct is_placeholder<T, typename T::_boost_type_erasure_is_placeholder> :
33 ::boost::mpl::true_ {};
34
35#endif
36
37}
38}
39
40#endif
41

source code of boost/libs/type_erasure/include/boost/type_erasure/is_placeholder.hpp