26 #ifndef MLN_METAL_CONST_HH
27 # define MLN_METAL_CONST_HH
36 # define mlc_const(T) typename mln::metal::const_< T >::ret
38 # define mlc_const_return(T) typename mln::metal::const_return_< T >::ret
50 template <
typename T>
struct const_ {
typedef const T ret; };
51 template <
typename T>
struct const_< const T > {
typedef const T ret; };
53 template <
typename T>
struct const_< T& > {
typedef const T& ret; };
54 template <
typename T>
struct const_< const T& > {
typedef const T& ret; };
56 template <
typename T>
struct const_< T* > {
typedef const T*
const ret; };
57 template <
typename T>
struct const_< const T* > {
typedef const T*
const ret; };
58 template <
typename T>
struct const_< T*
const > {
typedef const T*
const ret; };
59 template <
typename T>
struct const_< const T*
const > {
typedef const T*
const ret; };
64 template <
typename T>
struct const_return_ {
typedef T ret; };
65 template <
typename T>
struct const_return_< const T > {
typedef T ret; };
67 template <
typename T>
struct const_return_< T& > {
typedef const T& ret; };
68 template <
typename T>
struct const_return_< const T& > {
typedef const T& ret; };
70 template <
typename T>
struct const_return_< T* > {
typedef const T* ret; };
71 template <
typename T>
struct const_return_< const T* > {
typedef const T* ret; };
72 template <
typename T>
struct const_return_< T*
const > {
typedef const T* ret; };
73 template <
typename T>
struct const_return_< const T*
const > {
typedef const T* ret; };
80 #endif // ! MLN_METAL_CONST_HH