Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
template_encoding.hpp File Reference
Include dependency graph for template_encoding.hpp:
This graph shows which files directly or indirectly include this file:

Macros

#define BOOST_TYPEOF_QUALIFY(P)   P
 
#define BOOST_TYPEOF_MAKE_OBJ(elem)
 
#define BOOST_TYPEOF_TO_SEQ(tokens)   BOOST_TYPEOF_ ## tokens ## _BOOST_TYPEOF
 
#define BOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID(Name, Params, Id)
 
#define BOOST_TYPEOF_REGISTER_TEMPLATE(Name, Params)   BOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID(Name, Params, BOOST_TYPEOF_UNIQUE_ID())
 
#define BOOST_TYPEOF_OBJECT_MAKER(s, data, elem)   BOOST_TYPEOF_MAKE_OBJ(elem)
 
#define BOOST_TYPEOF_MAKE_OBJS(Params)   BOOST_PP_SEQ_TRANSFORM(BOOST_TYPEOF_OBJECT_MAKER, ~, Params)
 
#define BOOST_TYPEOF_TOSEQ(x)
 
#define BOOST_TYPEOF_TOSEQ_2(z, n, _)   (class)
 
#define BOOST_TYPEOF_CAT_4(a, b, c, d)   BOOST_TYPEOF_CAT_4_I(a, b, c, d)
 
#define BOOST_TYPEOF_CAT_4_I(a, b, c, d)   a ## b ## c ## d
 
#define BOOST_TYPEOF_VIRTUAL(Fun, Obj)   BOOST_TYPEOF_CAT_4(BOOST_TYPEOF_, BOOST_PP_SEQ_HEAD(Obj), _, Fun)
 
#define BOOST_TYPEOF_SEQ_EXPAND_ELEMENT(z, n, seq)   BOOST_PP_SEQ_ELEM(0,seq) (z,n,BOOST_PP_SEQ_ELEM(n,BOOST_PP_SEQ_ELEM(1,seq)))
 
#define BOOST_TYPEOF_SEQ_ENUM(seq, macro)   BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT,(macro)(seq))
 
#define BOOST_TYPEOF_SEQ_ENUM_TRAILING(seq, macro)   BOOST_PP_ENUM_TRAILING(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT,(macro)(seq))
 
#define BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1(z, n, seq)   BOOST_PP_SEQ_ELEM(0,seq) (z,n,BOOST_PP_SEQ_ELEM(n,BOOST_PP_SEQ_ELEM(1,seq)))
 
#define BOOST_TYPEOF_SEQ_ENUM_1(seq, macro)   BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1,(macro)(seq))
 
#define BOOST_TYPEOF_SEQ_ENUM_TRAILING_1(seq, macro)   BOOST_PP_ENUM_TRAILING(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1,(macro)(seq))
 
#define BOOST_TYPEOF_PLACEHOLDER(z, n, elem)   BOOST_TYPEOF_VIRTUAL(PLACEHOLDER, elem)(elem)
 
#define BOOST_TYPEOF_PLACEHOLDER_TYPES(z, n, elem)   BOOST_TYPEOF_VIRTUAL(PLACEHOLDER_TYPES, elem)(elem, n)
 
#define BOOST_TYPEOF_REGISTER_TEMPLATE_ENCODE_PARAM(r, data, n, elem)   BOOST_TYPEOF_VIRTUAL(ENCODE, elem)(elem, n)
 
#define BOOST_TYPEOF_REGISTER_TEMPLATE_DECODE_PARAM(r, data, n, elem)   BOOST_TYPEOF_VIRTUAL(DECODE, elem)(elem, n)
 
#define BOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR(z, n, elem)   BOOST_TYPEOF_VIRTUAL(EXPANDTYPE, elem)(elem) BOOST_PP_CAT(P, n)
 
#define BOOST_TYPEOF_REGISTER_DEFAULT_TEMPLATE_TYPE(Name, Params, ID)   Name< BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params), P) >
 
#define BOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR(z, n, elem)   BOOST_TYPEOF_VIRTUAL(EXPANDTYPE, elem)(elem) BOOST_PP_CAT(T, n)
 
#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TYPE(Name, Params)   typedef Name<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),BOOST_TYPEOF_QUALIFY(P))> type;
 
#define BOOST_TYPEOF_TYPEDEF_DECODED_TYPE(Name, Params)
 
#define BOOST_TYPEOF_REGISTER_TEMPLATE_IMPL(Name, Params, Size, ID)
 

Macro Definition Documentation

#define BOOST_TYPEOF_CAT_4 (   a,
  b,
  c,
 
)    BOOST_TYPEOF_CAT_4_I(a, b, c, d)
#define BOOST_TYPEOF_CAT_4_I (   a,
  b,
  c,
 
)    a ## b ## c ## d
#define BOOST_TYPEOF_MAKE_OBJ (   elem)
Value:
)
#define BOOST_PP_SEQ_CAT(seq)
Definition: cat.hpp:25
#define BOOST_TYPEOF_MAKE_OBJ(elem)
Definition: template_encoding.hpp:37
#define BOOST_PP_CAT(a, b)
Definition: cat.hpp:24
#define BOOST_TYPEOF_TO_SEQ(tokens)
Definition: template_encoding.hpp:42
#define BOOST_TYPEOF_MAKE_OBJS (   Params)    BOOST_PP_SEQ_TRANSFORM(BOOST_TYPEOF_OBJECT_MAKER, ~, Params)
#define BOOST_TYPEOF_OBJECT_MAKER (   s,
  data,
  elem 
)    BOOST_TYPEOF_MAKE_OBJ(elem)
#define BOOST_TYPEOF_PLACEHOLDER (   z,
  n,
  elem 
)    BOOST_TYPEOF_VIRTUAL(PLACEHOLDER, elem)(elem)
#define BOOST_TYPEOF_PLACEHOLDER_TYPES (   z,
  n,
  elem 
)    BOOST_TYPEOF_VIRTUAL(PLACEHOLDER_TYPES, elem)(elem, n)
#define BOOST_TYPEOF_QUALIFY (   P)    P
#define BOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR (   z,
  n,
  elem 
)    BOOST_TYPEOF_VIRTUAL(EXPANDTYPE, elem)(elem) BOOST_PP_CAT(T, n)
#define BOOST_TYPEOF_REGISTER_DEFAULT_TEMPLATE_TYPE (   Name,
  Params,
  ID 
)    Name< BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params), P) >
#define BOOST_TYPEOF_REGISTER_TEMPLATE (   Name,
  Params 
)    BOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID(Name, Params, BOOST_TYPEOF_UNIQUE_ID())
#define BOOST_TYPEOF_REGISTER_TEMPLATE_DECODE_PARAM (   r,
  data,
  n,
  elem 
)    BOOST_TYPEOF_VIRTUAL(DECODE, elem)(elem, n)
#define BOOST_TYPEOF_REGISTER_TEMPLATE_ENCODE_PARAM (   r,
  data,
  n,
  elem 
)    BOOST_TYPEOF_VIRTUAL(ENCODE, elem)(elem, n)
#define BOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID (   Name,
  Params,
  Id 
)
Value:
Name,\
Id)
#define BOOST_TYPEOF_MAKE_OBJS(Params)
Definition: template_encoding.hpp:59
#define BOOST_TYPEOF_TOSEQ(x)
Definition: template_encoding.hpp:64
#define BOOST_TYPEOF_REGISTER_TEMPLATE_IMPL(Name, Params, Size, ID)
Definition: template_encoding.hpp:136
#define BOOST_PP_SEQ_SIZE(seq)
Definition: size.hpp:28
#define BOOST_TYPEOF_REGISTER_TEMPLATE_IMPL (   Name,
  Params,
  Size,
  ID 
)
Value:
template<class V\
>\
struct encode_type_impl<V, Name<BOOST_PP_ENUM_PARAMS(Size, P)> >\
{\
typedef typename boost::type_of::push_back<V, boost::mpl::size_t<ID> >::type V0;\
typedef BOOST_PP_CAT(V, Size) type;\
};\
template<class Iter>\
struct decode_type_impl<boost::mpl::size_t<ID>, Iter>\
{\
typedef decode_type_impl<boost::mpl::size_t<ID>, Iter> self_t;\
typedef boost::mpl::size_t<ID> self_id;\
typedef Iter iter0;\
typedef BOOST_PP_CAT(iter, Size) iter;\
};\
Duration formatting facet for input.
Definition: accumulators_fwd.hpp:55
#define BOOST_TYPEOF_TYPEDEF_DECODED_TYPE(Name, Params)
Definition: template_encoding.hpp:131
Definition: tag_of.hpp:54
#define template
Definition: instances.hpp:126
#define BOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR(z, n, elem)
Definition: template_encoding.hpp:115
#define BOOST_TYPEOF_REGISTER_TEMPLATE_ENCODE_PARAM(r, data, n, elem)
Definition: template_encoding.hpp:109
#define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq)
Definition: for_each_i.hpp:29
#define BOOST_TYPEOF_REGISTER_TEMPLATE_DECODE_PARAM(r, data, n, elem)
Definition: template_encoding.hpp:112
#define BOOST_PP_CAT(a, b)
Definition: cat.hpp:24
#define BOOST_PP_ENUM_PARAMS(count, param)
Definition: enum_params.hpp:26
adjacency_iterator typedef T::adjacency_iterator type
Definition: graph_traits.hpp:42
#define BOOST_TYPEOF_END_ENCODE_NS
Definition: encode_decode.hpp:17
#define BOOST_TYPEOF_SEQ_ENUM_TRAILING(seq, macro)
Definition: template_encoding.hpp:89
#define BOOST_TYPEOF_REGISTER_TEMPLATE_TEMPLATE_IMPL(Name, Params, ID)
Definition: template_template_param.hpp:144
#define BOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR (   z,
  n,
  elem 
)    BOOST_TYPEOF_VIRTUAL(EXPANDTYPE, elem)(elem) BOOST_PP_CAT(P, n)
#define BOOST_TYPEOF_SEQ_ENUM (   seq,
  macro 
)    BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT,(macro)(seq))
#define BOOST_TYPEOF_SEQ_ENUM_1 (   seq,
  macro 
)    BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1,(macro)(seq))
#define BOOST_TYPEOF_SEQ_ENUM_TRAILING (   seq,
  macro 
)    BOOST_PP_ENUM_TRAILING(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT,(macro)(seq))
#define BOOST_TYPEOF_SEQ_ENUM_TRAILING_1 (   seq,
  macro 
)    BOOST_PP_ENUM_TRAILING(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1,(macro)(seq))
#define BOOST_TYPEOF_SEQ_EXPAND_ELEMENT (   z,
  n,
  seq 
)    BOOST_PP_SEQ_ELEM(0,seq) (z,n,BOOST_PP_SEQ_ELEM(n,BOOST_PP_SEQ_ELEM(1,seq)))
#define BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1 (   z,
  n,
  seq 
)    BOOST_PP_SEQ_ELEM(0,seq) (z,n,BOOST_PP_SEQ_ELEM(n,BOOST_PP_SEQ_ELEM(1,seq)))
#define BOOST_TYPEOF_TO_SEQ (   tokens)    BOOST_TYPEOF_ ## tokens ## _BOOST_TYPEOF
#define BOOST_TYPEOF_TOSEQ (   x)
Value:
BOOST_PP_IS_UNARY(x),\
#define BOOST_PP_REPEAT
Definition: repeat.hpp:29
Traits const flyweight< T, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 > &x return out<< x.get();}template< BOOST_TEMPLATED_STREAM_COMMA typename T, typename Arg_1, typename Arg_2, typename Arg_3, typename Arg_4, typename Arg_5 > Traits flyweight< T, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 > & x
Definition: flyweight.hpp:423
#define BOOST_PP_TUPLE_EAT(size)
Definition: eat.hpp:36
#define BOOST_TYPEOF_TOSEQ_2(z, n, _)
Definition: template_encoding.hpp:70
#define BOOST_PP_IIF(bit, t, f)
Definition: iif.hpp:20
#define BOOST_TYPEOF_TOSEQ_2 (   z,
  n,
 
)    (class)
#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TYPE (   Name,
  Params 
)    typedef Name<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),BOOST_TYPEOF_QUALIFY(P))> type;
#define BOOST_TYPEOF_TYPEDEF_DECODED_TYPE (   Name,
  Params 
)
Value:
#define BOOST_TYPEOF_HAS_TEMPLATES(Params)
Definition: template_template_param.hpp:137
#define BOOST_PP_IF(cond, t, f)
Definition: if.hpp:26
#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE(Name, Params)
Definition: template_template_param.hpp:123
#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TYPE(Name, Params)
Definition: template_encoding.hpp:127
#define BOOST_TYPEOF_VIRTUAL (   Fun,
  Obj 
)    BOOST_TYPEOF_CAT_4(BOOST_TYPEOF_, BOOST_PP_SEQ_HEAD(Obj), _, Fun)