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> 
   40     typedef typename boost::remove_const <typename boost::remove_reference< T >::type >::type type;
 
   51 template<
typename T,
size_t N1>
 
   58 template<
typename T,
size_t N1,
size_t N2>
 
   62                                                       boost::mpl::int_<N2>>>> 
type;
 
   67 template<
typename T,
size_t N1,
size_t N2,
size_t N3>
 
   72                                                       boost::mpl::int_<N3>>>> 
type;
 
   76 template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4>
 
   82                                                       boost::mpl::int_<N4>>>> 
type;
 
   86 template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4,
size_t N5>
 
   93                                                       boost::mpl::int_<N5>>>> 
type;
 
   97 template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4,
size_t N5, 
size_t N6>
 
  101                                                       boost::mpl::int_<N2>,
 
  102                                                       boost::mpl::int_<N3>,
 
  103                                                       boost::mpl::int_<N4>,
 
  104                                                       boost::mpl::int_<N5>,
 
  105                                                       boost::mpl::int_<N6>>>> 
type;
 
  109 template<
typename T,
size_t N1,
size_t N2,
size_t N3,
size_t N4,
size_t N5, 
size_t N6, 
size_t N7>
 
  113                                                       boost::mpl::int_<N2>,
 
  114                                                       boost::mpl::int_<N3>,
 
  115                                                       boost::mpl::int_<N4>,
 
  116                                                       boost::mpl::int_<N5>,
 
  117                                                       boost::mpl::int_<N6>,
 
  118                                                       boost::mpl::int_<N7>>>> 
type;
 
  122 template<
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>
 
  126                                                       boost::mpl::int_<N2>,
 
  127                                                       boost::mpl::int_<N3>,
 
  128                                                       boost::mpl::int_<N4>,
 
  129                                                       boost::mpl::int_<N5>,
 
  130                                                       boost::mpl::int_<N6>,
 
  131                                                       boost::mpl::int_<N7>,
 
  132                                                       boost::mpl::int_<N8>>>> 
type;
 
  136 template<
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>
 
  140                                                       boost::mpl::int_<N2>,
 
  141                                                       boost::mpl::int_<N3>,
 
  142                                                       boost::mpl::int_<N4>,
 
  143                                                       boost::mpl::int_<N5>,
 
  144                                                       boost::mpl::int_<N6>,
 
  145                                                       boost::mpl::int_<N7>,
 
  146                                                       boost::mpl::int_<N8>,
 
  147                                                       boost::mpl::int_<N9>>>> 
type;
 
  151 template<
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>
 
  155                                                       boost::mpl::int_<N2>,
 
  156                                                       boost::mpl::int_<N3>,
 
  157                                                       boost::mpl::int_<N4>,
 
  158                                                       boost::mpl::int_<N5>,
 
  159                                                       boost::mpl::int_<N6>,
 
  160                                                       boost::mpl::int_<N7>,
 
  161                                                       boost::mpl::int_<N8>,
 
  162                                                       boost::mpl::int_<N9>,
 
  163                                                       boost::mpl::int_<N10>>>> 
type;
 
t_to_memory_c is a metafunction that given T it convert it into 
 
Meta-function t_to_memory_c. 
 
This class is a container for the memory interface like HeapMemory CudaMemory. 
 
Partial specialization for scalar N=0.