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

Classes

struct  encode_template_impl< V, Type_Not_Registered_With_Typeof_System >
 
struct  decode_template_impl< T, Iter >
 
struct  boost::type_of::encode_template< V, T >
 
struct  boost::type_of::decode_template< Iter >
 

Namespaces

 boost
 Duration formatting facet for input.
 
 boost::type_of
 

Macros

#define BOOST_TYPEOF_MAKE_OBJ_template(x)   BOOST_TYPEOF_TEMPLATE_PARAM(x)
 
#define BOOST_TYPEOF_TEMPLATE(X)   template(X) BOOST_TYPEOF_EAT
 
#define BOOST_TYPEOF_template(X)   (template(X))
 
#define BOOST_TYPEOF_TEMPLATE_PARAM(Params)
 
#define BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)   BOOST_TYPEOF_TOSEQ(BOOST_PP_SEQ_ELEM(1, This))
 
#define BOOST_TYPEOF_TEMPLATE_PARAM_ENCODE(This, n)
 
#define BOOST_TYPEOF_TEMPLATE_PARAM_DECODE(This, n)
 
#define BOOST_TYPEOF_TEMPLATE_PARAM_EXPANDTYPE(This)   template <BOOST_PP_SEQ_ENUM(BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)) > class
 
#define BOOST_TYPEOF_TEMPLATE_PARAM_PLACEHOLDER(Param)   Nested_Template_Template_Arguments_Not_Supported
 
#define BOOST_TYPEOF_TEMPLATE_PARAM_DECLARATION_TYPE(Param)   class
 
#define BOOST_TYPEOF_TEMPLATE_PARAM_PLACEHOLDER_TYPES(Param, n)   BOOST_PP_CAT(T,n)<BOOST_TYPEOF_SEQ_ENUM_1(BOOST_TYPEOF_MAKE_OBJS(BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(Param)),BOOST_TYPEOF_PLACEHOLDER) >
 
#define BOOST_TYPEOF_TEMPLATE_PARAM_ISTEMPLATE   1
 
#define BOOST_TYPEOF_REGISTER_TYPE_FOR_TEMPLATE_TEMPLATE(Name, Params, ID)
 
#define BOOST_TYPEOF_TYPEDEF_INT_PN(z, n, Params)   typedef int BOOST_PP_CAT(P,n);
 
#define BOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL(Name, Params, ID)
 
#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE(Name, Params)
 
#define BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR(z, n, elem)   BOOST_TYPEOF_VIRTUAL(DECLARATION_TYPE, elem)(elem) BOOST_PP_CAT(T, n)
 
#define BOOST_TYPEOF_HAS_TEMPLATES(Params)   BOOST_PP_SEQ_FOLD_LEFT(BOOST_TYPEOF_HAS_TEMPLATES_OP, 0, Params)
 
#define BOOST_TYPEOF_HAS_TEMPLATES_OP(s, state, elem)   BOOST_PP_OR(state, BOOST_TYPEOF_VIRTUAL(ISTEMPLATE, elem))
 
#define BOOST_TYPEOF_REGISTER_TEMPLATE_TEMPLATE_IMPL(Name, Params, ID)
 

Macro Definition Documentation

#define BOOST_TYPEOF_HAS_TEMPLATES (   Params)    BOOST_PP_SEQ_FOLD_LEFT(BOOST_TYPEOF_HAS_TEMPLATES_OP, 0, Params)
#define BOOST_TYPEOF_HAS_TEMPLATES_OP (   s,
  state,
  elem 
)    BOOST_PP_OR(state, BOOST_TYPEOF_VIRTUAL(ISTEMPLATE, elem))
#define BOOST_TYPEOF_MAKE_OBJ_template (   x)    BOOST_TYPEOF_TEMPLATE_PARAM(x)
#define BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR (   z,
  n,
  elem 
)    BOOST_TYPEOF_VIRTUAL(DECLARATION_TYPE, elem)(elem) BOOST_PP_CAT(T, n)
#define BOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL (   Name,
  Params,
  ID 
)
#define BOOST_TYPEOF_REGISTER_TEMPLATE_TEMPLATE_IMPL (   Name,
  Params,
  ID 
)
Value:
#define BOOST_TYPEOF_HAS_TEMPLATES(Params)
Definition: template_template_param.hpp:137
#define BOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL(Name, Params, ID)
Definition: template_template_param.hpp:120
#define BOOST_PP_IF(cond, t, f)
Definition: if.hpp:26
#define BOOST_TYPEOF_REGISTER_TYPE_FOR_TEMPLATE_TEMPLATE(Name, Params, ID)
Definition: template_template_param.hpp:76
#define BOOST_TYPEOF_REGISTER_TYPE_FOR_TEMPLATE_TEMPLATE (   Name,
  Params,
  ID 
)
Value:
template<class V\
>\
struct encode_template_impl<V,Name<\
P)> >\
: boost::type_of::push_back<V, boost::mpl::size_t<ID> >\
{\
};\
template<class Iter> struct decode_template_impl<boost::mpl::size_t<ID>, Iter>\
{\
typedef Name<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_PLACEHOLDER) > type;\
typedef Iter iter;\
};
Duration formatting facet for input.
Definition: accumulators_fwd.hpp:55
#define BOOST_PP_REPEAT
Definition: repeat.hpp:29
#define BOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR(z, n, elem)
Definition: template_encoding.hpp:115
#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_TYPEDEF_INT_PN(z, n, Params)
Definition: template_template_param.hpp:94
Definition: template_template_param.hpp:56
#define BOOST_TYPEOF_SEQ_ENUM_TRAILING(seq, macro)
Definition: template_encoding.hpp:89
Definition: template_template_param.hpp:57
#define BOOST_PP_SEQ_SIZE(seq)
Definition: size.hpp:28
#define BOOST_TYPEOF_TEMPLATE (   X)    template(X) BOOST_TYPEOF_EAT
#define BOOST_TYPEOF_template (   X)    (template(X))
#define BOOST_TYPEOF_TEMPLATE_PARAM (   Params)
Value:
(TEMPLATE_PARAM)\
(Params)
#define BOOST_TYPEOF_TEMPLATE_PARAM_DECLARATION_TYPE (   Param)    class
#define BOOST_TYPEOF_TEMPLATE_PARAM_DECODE (   This,
  n 
)
Value:
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 n
Definition: register_functions_iterate.hpp:7
Definition: template_template_param.hpp:67
#define BOOST_PP_CAT(a, b)
Definition: cat.hpp:24
#define BOOST_PP_INC(x)
Definition: inc.hpp:24
adjacency_iterator typedef T::adjacency_iterator type
Definition: graph_traits.hpp:42
#define BOOST_TYPEOF_TEMPLATE_PARAM_ENCODE (   This,
  n 
)
Value:
#define BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)
Definition: template_template_param.hpp:21
#define BOOST_TYPEOF_SEQ_ENUM(seq, macro)
Definition: template_encoding.hpp:86
#define n
Definition: register_functions_iterate.hpp:7
#define BOOST_TYPEOF_MAKE_OBJS(Params)
Definition: template_encoding.hpp:59
Definition: template_template_param.hpp:63
#define BOOST_PP_CAT(a, b)
Definition: cat.hpp:24
#define BOOST_TYPEOF_PLACEHOLDER(z, n, elem)
Definition: template_encoding.hpp:103
#define BOOST_PP_INC(x)
Definition: inc.hpp:24
adjacency_iterator typedef T::adjacency_iterator type
Definition: graph_traits.hpp:42
#define BOOST_TYPEOF_TEMPLATE_PARAM_EXPANDTYPE (   This)    template <BOOST_PP_SEQ_ENUM(BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)) > class
#define BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS (   This)    BOOST_TYPEOF_TOSEQ(BOOST_PP_SEQ_ELEM(1, This))
#define BOOST_TYPEOF_TEMPLATE_PARAM_ISTEMPLATE   1
#define BOOST_TYPEOF_TEMPLATE_PARAM_PLACEHOLDER (   Param)    Nested_Template_Template_Arguments_Not_Supported
#define BOOST_TYPEOF_TEMPLATE_PARAM_PLACEHOLDER_TYPES (   Param,
  n 
)    BOOST_PP_CAT(T,n)<BOOST_TYPEOF_SEQ_ENUM_1(BOOST_TYPEOF_MAKE_OBJS(BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(Param)),BOOST_TYPEOF_PLACEHOLDER) >
#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE (   Name,
  Params 
)
Value:
template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR) >\
struct decode_params;\
template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR) >\
struct decode_params<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_PLACEHOLDER_TYPES) >\
{\
typedef Name<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),T)> type;\
};\
adjacency_iterator typedef T::adjacency_iterator type
Definition: graph_traits.hpp:42
#define BOOST_TYPEOF_TYPEDEF_INT_PN (   z,
  n,
  Params 
)    typedef int BOOST_PP_CAT(P,n);