Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 1 | // Copyright (C) 2005 Arkadiy Vertleyb |
| 2 | // Distributed under the Boost Software License, Version 1.0. (See accompanying |
| 3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| 4 | |
| 5 | #ifndef BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED |
| 6 | #define BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED |
| 7 | |
| 8 | #define BOOST_TYPEOF_class_BOOST_TYPEOF (class) |
| 9 | #define BOOST_TYPEOF_typename_BOOST_TYPEOF (typename) |
| 10 | |
| 11 | #define BOOST_TYPEOF_MAKE_OBJ_class BOOST_TYPEOF_TYPE_PARAM |
| 12 | #define BOOST_TYPEOF_MAKE_OBJ_typename BOOST_TYPEOF_TYPE_PARAM |
| 13 | |
| 14 | #define BOOST_TYPEOF_TYPE_PARAM\ |
| 15 | (TYPE_PARAM) |
| 16 | |
| 17 | #define BOOST_TYPEOF_TYPE_PARAM_EXPANDTYPE(Param) class |
| 18 | |
| 19 | // TYPE_PARAM "virtual functions" implementation |
| 20 | |
| 21 | #define BOOST_TYPEOF_TYPE_PARAM_ENCODE(This, n)\ |
| 22 | typedef typename ndnboost::type_of::encode_type<\ |
| 23 | BOOST_PP_CAT(V, n),\ |
| 24 | BOOST_PP_CAT(P, n)\ |
| 25 | >::type BOOST_PP_CAT(V, BOOST_PP_INC(n)); |
| 26 | |
| 27 | #define BOOST_TYPEOF_TYPE_PARAM_DECODE(This, n)\ |
| 28 | typedef ndnboost::type_of::decode_type< BOOST_PP_CAT(iter, n) > BOOST_PP_CAT(d, n);\ |
| 29 | typedef typename BOOST_PP_CAT(d, n)::type BOOST_PP_CAT(P, n);\ |
| 30 | typedef typename BOOST_PP_CAT(d, n)::iter BOOST_PP_CAT(iter, BOOST_PP_INC(n)); |
| 31 | |
| 32 | #define BOOST_TYPEOF_TYPE_PARAM_PLACEHOLDER(Param) int |
| 33 | #define BOOST_TYPEOF_TYPE_PARAM_DECLARATION_TYPE(Param) class |
| 34 | #define BOOST_TYPEOF_TYPE_PARAM_PLACEHOLDER_TYPES(Param, n) BOOST_PP_CAT(T,n) |
| 35 | #define BOOST_TYPEOF_TYPE_PARAM_ISTEMPLATE 0 |
| 36 | |
| 37 | #endif//BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED |