// The code below figures out a type from the type of a pointer, // reference, or the type itself #ifndef GENERS_IOREFERREDTYPE_HH_ #define GENERS_IOREFERREDTYPE_HH_ #include "geners/IOPtr.hh" #include "geners/StrippedType.hh" namespace gs { template struct IOReferredType { typedef typename StrippedType::type type; }; // Qualifiers cannot be applied to references themselves, // only to the types they refer to template struct IOReferredType { typedef typename StrippedType::type type; }; template struct IOReferredType > { typedef typename StrippedType::type type; }; template struct IOReferredType > { typedef typename StrippedType::type type; }; template struct IOReferredType > { typedef typename StrippedType::type type; }; template struct IOReferredType > { typedef typename StrippedType::type type; }; template struct IOReferredType > { typedef typename StrippedType::type type; }; template struct IOReferredType > { typedef typename StrippedType::type type; }; template struct IOReferredType > { typedef typename StrippedType::type type; }; template struct IOReferredType > { typedef typename StrippedType::type type; }; } #endif // GENERS_IOREFERREDTYPE_HH_