8 #ifndef MAKE_HG_TYPE_LIST_H_INCLUDED
9 #define MAKE_HG_TYPE_LIST_H_INCLUDED
11 #include <Pb/type_list.h>
12 #include <Pb/type_at.h>
13 #include <Hg/proxy/deduce_proxy_type.h>
16 #include <Pb/dynamic.h>
72 Hg::push_front< Hg::TypeList< Hg::MT >,
100 make_Hg_type_list<T>::type type;
129 template <
class,
size_t>
class ArrayT
131 struct DeclareTypeSequence < ArrayT<T,N>,
nested_trait >
136 FieldTypes <T>::value_type value_type;
139 std::array< value_type, N> type;
168 template <
class,
class>
class VectorT
170 struct DeclareTypeSequence < VectorT<T,A>, nested_trait >
175 FieldTypes <T>::value_type value_type;
178 std::vector< value_type, A> type;
196 template<
class ArrayT >
197 struct ReplaceType< ArrayT, array_trait>
201 ArrayT::value_type value_type;
206 DeduceTypeTrait<value_type>::type type_trait;
213 DeclareTypeSequence < ArrayT,
218 DeclareTypeSequence < std::vector<value_type>,
224 typedef array_type type;
235 template<
class VectorT >
236 struct ReplaceType< VectorT, vector_trait>
240 VectorT::value_type value_type;
245 DeduceTypeTrait<value_type>::type type_trait;
248 DeclareTypeSequence < VectorT,
262 typename DeduceTypeTrait<T>::type
273 struct make_Hg_worker
277 AdjustType<T>::type adjusted_type;
290 make_Hg_worker< next_type,
296 Hg::push_front< hg_list,
304 template<
class LList,
307 struct make_Hg_worker < Hg::MT,
323 struct make_Hg_type_list
336 detail::make_Hg_worker< next_type,