]> git.lyx.org Git - lyx.git/blob - boost/boost/mpl/identity.hpp
bebc2917453782c2c772413c4a0f97b30e73ae0b
[lyx.git] / boost / boost / mpl / identity.hpp
1 //-----------------------------------------------------------------------------
2 // boost mpl/identity.hpp header file
3 // See http://www.boost.org for updates, documentation, and revision history.
4 //-----------------------------------------------------------------------------
5 //
6 // Copyright (c) 2000-02
7 // Aleksey Gurtovoy
8 //
9 // Permission to use, copy, modify, distribute and sell this software
10 // and its documentation for any purpose is hereby granted without fee, 
11 // provided that the above copyright notice appears in all copies and 
12 // that both the copyright notice and this permission notice appear in 
13 // supporting documentation. No representations are made about the 
14 // suitability of this software for any purpose. It is provided "as is" 
15 // without express or implied warranty.
16
17 #ifndef BOOST_MPL_IDENTITY_HPP_INCLUDED
18 #define BOOST_MPL_IDENTITY_HPP_INCLUDED
19
20 #include "boost/mpl/aux_/void_spec.hpp"
21 #include "boost/mpl/aux_/lambda_support.hpp"
22
23 namespace boost {
24 namespace mpl {
25
26 template<
27       typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
28     >
29 struct identity
30 {
31     typedef T type;
32     BOOST_MPL_AUX_LAMBDA_SUPPORT(1,identity,(T))
33 };
34
35 template<
36       typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
37     >
38 struct make_identity
39 {
40     typedef identity<T> type;
41     BOOST_MPL_AUX_LAMBDA_SUPPORT(1,make_identity,(T))
42 };
43
44 BOOST_MPL_AUX_VOID_SPEC(1, identity)
45 BOOST_MPL_AUX_VOID_SPEC(1, make_identity)
46
47 } // namespace mpl
48 } // namespace boost
49
50 #endif // BOOST_MPL_IDENTITY_HPP_INCLUDED