realroot_doc 0.1.1
|
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