1 # /* ************************************************************************** |
1 |
2 # * * |
2 #ifndef BOOST_MPL_IDENTITY_HPP_INCLUDED |
3 # * (C) Copyright Paul Mensonides 2002. |
3 #define BOOST_MPL_IDENTITY_HPP_INCLUDED |
4 # * Distributed under the Boost Software License, Version 1.0. (See |
4 |
5 # * accompanying file LICENSE_1_0.txt or copy at |
5 // Copyright Aleksey Gurtovoy 2000-2004 |
6 # * http://www.boost.org/LICENSE_1_0.txt) |
6 // |
7 # * * |
7 // Distributed under the Boost Software License, Version 1.0. |
8 # ************************************************************************** */ |
8 // (See accompanying file LICENSE_1_0.txt or copy at |
9 # |
9 // http://www.boost.org/LICENSE_1_0.txt) |
10 # /* See http://www.boost.org for most recent version. */ |
10 // |
11 # |
11 // See http://www.boost.org/libs/mpl for documentation. |
12 # ifndef BOOST_PREPROCESSOR_IDENTITY_HPP |
12 |
13 # define BOOST_PREPROCESSOR_IDENTITY_HPP |
13 // $Source: /cvsroot/boost/boost/boost/mpl/identity.hpp,v $ |
14 # |
14 // $Date: 2004/09/02 15:40:41 $ |
15 # include <boost/preprocessor/facilities/identity.hpp> |
15 // $Revision: 1.4 $ |
16 # |
16 |
17 # endif |
17 #include <boost/mpl/aux_/na_spec.hpp> |
|
18 #include <boost/mpl/aux_/lambda_support.hpp> |
|
19 |
|
20 namespace boost { namespace mpl { |
|
21 |
|
22 template< |
|
23 typename BOOST_MPL_AUX_NA_PARAM(T) |
|
24 > |
|
25 struct identity |
|
26 { |
|
27 typedef T type; |
|
28 BOOST_MPL_AUX_LAMBDA_SUPPORT(1, identity, (T)) |
|
29 }; |
|
30 |
|
31 template< |
|
32 typename BOOST_MPL_AUX_NA_PARAM(T) |
|
33 > |
|
34 struct make_identity |
|
35 { |
|
36 typedef identity<T> type; |
|
37 BOOST_MPL_AUX_LAMBDA_SUPPORT(1, make_identity, (T)) |
|
38 }; |
|
39 |
|
40 BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, identity) |
|
41 BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, make_identity) |
|
42 |
|
43 }} |
|
44 |
|
45 #endif // BOOST_MPL_IDENTITY_HPP_INCLUDED |