summaryrefslogtreecommitdiff
path: root/boost/type_erasure/same_type.hpp
blob: c2cf7a324d654e5e0e6682c92800d8a3c9c7bce6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Boost.TypeErasure library
//
// Copyright 2011 Steven Watanabe
//
// 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)
//
// $Id$

#ifndef BOOST_TYPE_ERASURE_SAME_TYPE_HPP_INCLUDED
#define BOOST_TYPE_ERASURE_SAME_TYPE_HPP_INCLUDED

namespace boost {
namespace type_erasure {

/**
 * A built in concept that indicates that two
 * types are the same.  Either T or U or both
 * can be placeholders.
 *
 * \warning Any number of instances of @ref deduced
 * can be connected with @ref same_type, but there
 * should be at most one regular placeholder in
 * the group. same_type<_a, _b> is not allowed.
 * The reason for this is that the library needs
 * to normalize all the placeholders, and in this
 * context there is no way to decide whether to
 * use @ref _a or @ref _b.
 */
template<class T, class U>
struct same_type {};

}
}

#endif