realroot_doc 0.1.1
/Users/mourrain/Devel/mmx/realroot/include/realroot/texp_strip_qualifiers.hpp
Go to the documentation of this file.
00001 #ifndef realroot_BASE_TYPE_STRIPQUALIFIERS_H
00002 #define realroot_BASE_TYPE_STRIPQUALIFIERS_H
00003 
00004 namespace mmx {
00005 
00006 namespace texp 
00007 {
00009   template <class X> struct  ptr     { typedef X * T; };
00010   template <class X> struct  ptr<X*> { typedef X * T; };
00011   template <class X> struct  ptr<X* const> { typedef X * const T; };
00013   template <class X> struct uptr     { typedef X   T; };
00014   template <class X> struct uptr<X*> { typedef X   T; };
00016   template <class X> struct  ref     { typedef X & T; };
00017   template <class X> struct  ref<X&> { typedef X & T; };
00019   template <class X> struct uref     { typedef X   T; }; 
00020   template <class X> struct uref<X&> { typedef X   T; };
00022   template <class X> struct  cst          { typedef const X T; };
00023   template <class X> struct  cst<const X> { typedef const X T; };
00025   template <class X> struct ucst          { typedef X T; };
00026   template <class X> struct ucst<const X> { typedef X T; };
00028   template <class X> struct ucstref  { typedef typename uref< typename ucst<X>::T >::T T; };
00029 };
00030 
00031 }// end namespace mmx
00032 
00033 #endif