8#ifndef T_TO_MEMORY_C_HPP_
9#define T_TO_MEMORY_C_HPP_
11#include <boost/mpl/int.hpp>
12#include <memory_ly/memory_c.hpp>
32#include <boost/type_traits/remove_reference.hpp>
33#include <boost/type_traits/remove_const.hpp>
41 typedef typename boost::remove_const <typename boost::remove_reference< T >::type >
::type type;
62template<
typename T,
size_t N1>
69 typedef boost::mpl::vector<T,boost::mpl::int_<N1>>
prim_vmpl;
73template<
typename T,
size_t N1>
80 typedef boost::mpl::vector<T,boost::mpl::int_<N1>>
prim_vmpl;
84template<
typename T,
size_t N1,
size_t N2>
89 boost::mpl::int_<N2>>>>
type;
93 typedef boost::mpl::vector<T,boost::mpl::int_<N1>,
98template<
typename T,
size_t N1,
size_t N2>
103 boost::mpl::int_<N2>>>,MEMORY_C_REDUCED>
type;
106 typedef boost::mpl::vector<T,boost::mpl::int_<N1>,
111template<
typename T,
size_t N1,
size_t N2,
size_t N3>
116 boost::mpl::int_<N2>,
121template<
typename T,
size_t N1,
size_t N2,
size_t N3>
126 boost::mpl::int_<N2>,
127 boost::mpl::int_<N3>>>,MEMORY_C_REDUCED>
type;
131template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4>
136 boost::mpl::int_<N2>,
137 boost::mpl::int_<N3>,
142template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4>
147 boost::mpl::int_<N2>,
148 boost::mpl::int_<N3>,
149 boost::mpl::int_<N4>>>,MEMORY_C_REDUCED>
type;
153template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4,
size_t N5>
158 boost::mpl::int_<N2>,
159 boost::mpl::int_<N3>,
160 boost::mpl::int_<N4>,
165template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4,
size_t N5>
170 boost::mpl::int_<N2>,
171 boost::mpl::int_<N3>,
172 boost::mpl::int_<N4>,
173 boost::mpl::int_<N5>>>,MEMORY_C_REDUCED>
type;
177template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4,
size_t N5,
size_t N6>
182 boost::mpl::int_<N2>,
183 boost::mpl::int_<N3>,
184 boost::mpl::int_<N4>,
185 boost::mpl::int_<N5>,
190template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4,
size_t N5,
size_t N6,
size_t N7>
195 boost::mpl::int_<N2>,
196 boost::mpl::int_<N3>,
197 boost::mpl::int_<N4>,
198 boost::mpl::int_<N5>,
199 boost::mpl::int_<N6>,
204template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4,
size_t N5,
size_t N6,
size_t N7,
size_t N8>
209 boost::mpl::int_<N2>,
210 boost::mpl::int_<N3>,
211 boost::mpl::int_<N4>,
212 boost::mpl::int_<N5>,
213 boost::mpl::int_<N6>,
214 boost::mpl::int_<N7>,
219template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4,
size_t N5,
size_t N6,
size_t N7,
size_t N8,
size_t N9>
224 boost::mpl::int_<N2>,
225 boost::mpl::int_<N3>,
226 boost::mpl::int_<N4>,
227 boost::mpl::int_<N5>,
228 boost::mpl::int_<N6>,
229 boost::mpl::int_<N7>,
230 boost::mpl::int_<N8>,
235template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4,
size_t N5,
size_t N6,
size_t N7,
size_t N8,
size_t N9,
size_t N10>
240 boost::mpl::int_<N2>,
241 boost::mpl::int_<N3>,
242 boost::mpl::int_<N4>,
243 boost::mpl::int_<N5>,
244 boost::mpl::int_<N6>,
245 boost::mpl::int_<N7>,
246 boost::mpl::int_<N8>,
247 boost::mpl::int_<N9>,
t_to_memory_c is a metafunction that given T it convert it into
boost::remove_const< typenameboost::remove_reference< T >::type >::type type
remove all attributes const and reference from the type
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 >, boost::mpl::int_< N3 >, boost::mpl::int_< N4 >, boost::mpl::int_< N5 >, boost::mpl::int_< N6 >, boost::mpl::int_< N7 >, boost::mpl::int_< N8 >, boost::mpl::int_< N9 >, boost::mpl::int_< N10 > > > > type
tranform a type T into a memory_c<multi_array<.......>>
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 >, boost::mpl::int_< N3 >, boost::mpl::int_< N4 >, boost::mpl::int_< N5 >, boost::mpl::int_< N6 >, boost::mpl::int_< N7 >, boost::mpl::int_< N8 >, boost::mpl::int_< N9 > > > > type
tranform a type T into a memory_c<multi_array<.......>>
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 >, boost::mpl::int_< N3 >, boost::mpl::int_< N4 >, boost::mpl::int_< N5 >, boost::mpl::int_< N6 >, boost::mpl::int_< N7 >, boost::mpl::int_< N8 > > > > type
tranform a type T into a memory_c<multi_array<.......>>
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 >, boost::mpl::int_< N3 >, boost::mpl::int_< N4 >, boost::mpl::int_< N5 >, boost::mpl::int_< N6 >, boost::mpl::int_< N7 > > > > type
tranform a type T into a memory_c<multi_array<.......>>
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 >, boost::mpl::int_< N3 >, boost::mpl::int_< N4 >, boost::mpl::int_< N5 >, boost::mpl::int_< N6 > > > > type
tranform a type T into a memory_c<multi_array<.......>>
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 >, boost::mpl::int_< N3 >, boost::mpl::int_< N4 >, boost::mpl::int_< N5 > > > > type
tranform a type T into a memory_c<multi_array<.......>>
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 >, boost::mpl::int_< N3 >, boost::mpl::int_< N4 > > > > type
tranform a type T into a memory_c<multi_array<.......>>
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 >, boost::mpl::int_< N3 > > > > type
tranform a type T into a memory_c<multi_array<.......>>
boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 > > prim_vmpl
the internal array primitive information represented into a boost mpl vector
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 > > > > type
tranform a type T into a memory_c<multi_array<.......>>
boost::mpl::vector< T, boost::mpl::int_< N1 > > prim_vmpl
the internal array primitive information represented into a boost mpl vector
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 > > > > type
transfrom a type T into memory_c<T>
Partial specialization for scalar N=0.
memory_c< T > type
transform a type T into memory_c<T>
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 >, boost::mpl::int_< N3 >, boost::mpl::int_< N4 >, boost::mpl::int_< N5 > > >, MEMORY_C_REDUCED > type
tranform a type T into a memory_c<multi_array<.......>,MEMORY_C_REDUCED>
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 >, boost::mpl::int_< N3 >, boost::mpl::int_< N4 > > >, MEMORY_C_REDUCED > type
tranform a type T into a memory_c<multi_array<.......>,MEMORY_C_REDUCED>
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 >, boost::mpl::int_< N3 > > >, MEMORY_C_REDUCED > type
tranform a type T into a memory_c<multi_array<.......>>
boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 > > prim_vmpl
the internal array primitive information represented into a boost mpl vector
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 >, boost::mpl::int_< N2 > > >, MEMORY_C_REDUCED > type
transform a type T into a memory_c<multi_array<.......>,MEMORY_C_REDUCED>
memory_c< multi_array< boost::mpl::vector< T, boost::mpl::int_< N1 > > >, MEMORY_C_REDUCED > type
transform a type T into memory_c<T,MEMORY_C_REDUCED>
boost::mpl::vector< T, boost::mpl::int_< N1 > > prim_vmpl
the internal array primitive information represented into a boost mpl vector
Partial specialization for scalar N=0.
memory_c< T, MEMORY_C_REDUCED > type
transform a type T into memory_c<T,MEMORY_C_REDUCED>
Meta-function t_to_memory_c_red.
Meta-function t_to_memory_c.