Вы можете объявить следующий шаблон класса, wrapper_inner_type
:
template<typename>
struct wrapper_inner_type;
Затем, специализируйте его для оболочки, wrapperT<InnerType>
, где InnerType
- это тип, который вы хотите узнать:
template<typename InnerType>
struct wrapper_inner_type<wrapperT<InnerType>> {
using type = InnerType;
};
Вы также можете определить этот шаблон псевдонима для удобства:
template<typename T>
using wrapper_inner_type_t = typename wrapper_inner_type<T>::type;
Наконец, чтобы получить внутренний тип внутри InData
:
template <typename wrapperType>
class InData{
wrapper_inner_type_t<wrapperType> var;
};