]> git.donarmstrong.com Git - rsem.git/blob - boost/typeof/type_encoding.hpp
Updated boost to v1.55.0
[rsem.git] / boost / typeof / type_encoding.hpp
1 // Copyright (C) 2004 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_ENCODING_HPP_INCLUDED
6 #define BOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
7
8 #define BOOST_TYPEOF_REGISTER_TYPE_IMPL(T, Id)                          \
9                                                                         \
10     template<class V> struct encode_type_impl<V, T >                    \
11         : boost::type_of::push_back<V, boost::mpl::size_t<Id> >         \
12     {};                                                                 \
13     template<class Iter> struct decode_type_impl<boost::mpl::size_t<Id>, Iter> \
14     {                                                                   \
15         typedef T type;                                                 \
16         typedef Iter iter;                                              \
17     };
18
19 #define BOOST_TYPEOF_REGISTER_TYPE_EXPLICIT_ID(Type, Id)                \
20     BOOST_TYPEOF_BEGIN_ENCODE_NS                                        \
21     BOOST_TYPEOF_REGISTER_TYPE_IMPL(Type, Id)                           \
22     BOOST_TYPEOF_END_ENCODE_NS
23
24 #define BOOST_TYPEOF_REGISTER_TYPE(Type)                                \
25     BOOST_TYPEOF_REGISTER_TYPE_EXPLICIT_ID(Type, BOOST_TYPEOF_UNIQUE_ID())
26
27 #endif//BOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED