]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/typeof/include/boost/typeof/type_template_param.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / typeof / include / boost / typeof / type_template_param.hpp
CommitLineData
7c673cae
FG
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 boost::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 boost::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