diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-06-01 08:48:42 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-06-01 09:24:28 (GMT) |
commit | 2812bddd81f8a1b804c7460f4e14cd0aa393d129 (patch) | |
tree | d46294f35150c4f0f43deaf2d31fceaf945ae715 /3rdParty/Boost/boost/typeof/type_template_param.hpp | |
download | swift-contrib-2812bddd81f8a1b804c7460f4e14cd0aa393d129.zip swift-contrib-2812bddd81f8a1b804c7460f4e14cd0aa393d129.tar.bz2 |
Import.
Diffstat (limited to '3rdParty/Boost/boost/typeof/type_template_param.hpp')
-rw-r--r-- | 3rdParty/Boost/boost/typeof/type_template_param.hpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/3rdParty/Boost/boost/typeof/type_template_param.hpp b/3rdParty/Boost/boost/typeof/type_template_param.hpp new file mode 100644 index 0000000..28a860c --- /dev/null +++ b/3rdParty/Boost/boost/typeof/type_template_param.hpp @@ -0,0 +1,37 @@ +// Copyright (C) 2005 Arkadiy Vertleyb +// 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) + +#ifndef BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED +#define BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED + +#define BOOST_TYPEOF_class_BOOST_TYPEOF (class) +#define BOOST_TYPEOF_typename_BOOST_TYPEOF (typename) + +#define BOOST_TYPEOF_MAKE_OBJ_class BOOST_TYPEOF_TYPE_PARAM +#define BOOST_TYPEOF_MAKE_OBJ_typename BOOST_TYPEOF_TYPE_PARAM + +#define BOOST_TYPEOF_TYPE_PARAM\ + (TYPE_PARAM) + +#define BOOST_TYPEOF_TYPE_PARAM_EXPANDTYPE(Param) class + +// TYPE_PARAM "virtual functions" implementation + +#define BOOST_TYPEOF_TYPE_PARAM_ENCODE(This, n)\ + typedef typename boost::type_of::encode_type<\ + BOOST_PP_CAT(V, n),\ + BOOST_PP_CAT(P, n)\ + >::type BOOST_PP_CAT(V, BOOST_PP_INC(n)); + +#define BOOST_TYPEOF_TYPE_PARAM_DECODE(This, n)\ + typedef boost::type_of::decode_type< BOOST_PP_CAT(iter, n) > BOOST_PP_CAT(d, n);\ + typedef typename BOOST_PP_CAT(d, n)::type BOOST_PP_CAT(P, n);\ + typedef typename BOOST_PP_CAT(d, n)::iter BOOST_PP_CAT(iter, BOOST_PP_INC(n)); + +#define BOOST_TYPEOF_TYPE_PARAM_PLACEHOLDER(Param) int +#define BOOST_TYPEOF_TYPE_PARAM_DECLARATION_TYPE(Param) class +#define BOOST_TYPEOF_TYPE_PARAM_PLACEHOLDER_TYPES(Param, n) BOOST_PP_CAT(T,n) +#define BOOST_TYPEOF_TYPE_PARAM_ISTEMPLATE 0 + +#endif//BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED |