apakah mungkin untuk mengambil tipe templat bertumpuk terdalam dari tipe yang sama dari dalam templat? Saya ingin mengambil tipe double
dalam contoh berikut:
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's 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;
}
Hal ini dilatarbelakangi oleh pertanyaan ini. Juga, saya menemukan postingan ini, menunjukkan bahwa ini mungkin ada hubungannya dengan penempatan kata kunci typename
atau template
, namun saya sendiri tidak dapat membuatnya berfungsi.