возможно ли извлечь изнутри шаблон сокрытых шаблонов одного типа из одного типа? Я хотел бы получить double
тип в следующем примере:
template<typename T>
struct is_a : std::false_type {};
template<typename T>
struct A
{
using type = std::conditional_t<
is_a<T>::value,
T::type, // if it an A, go deeper
T>; // if not, we're done
};
template<typename T>
struct is_a<A<T>> : std::true_type {};
int main()
{
A<A<A<A<A<double>>>>>::type d = 3.0;
return 0;
}
Это было мотивировано этим вопросом. Кроме того, я нашел этот пост, указав, что он может что-то делать с использованием ключевого слова typename
или template
, но я не мог заставить его работать сам.