Pourquoi ce ne parvient pas à compiler:C++: Pourquoi l'alias modélisé récursif est-il interdit?
template<typename T, int N>
using vec = vector<vec<T, N - 1>>;
template<typename T>
using vec<0> = T;
tout simplement l'imbrication dans une struct fonctionne très bien:
template<typename T, int N>
struct foo {
using vec = vector<typename foo<T, N - 1>::vec>;
};
template<typename T>
struct foo<T, 0> {
using vec = T;
};
Quelle est la raison d'être interdit récursivité dans les alias si vous pouvez le remplacer par construit plus verbeux?
voir: https://godbolt.org/g/YtyhvL
Vous ne pouvez pas spécialiser les alias de modèle, donc cela n'aurait pas fonctionné de toute façon. Mais encore une question intéressante. – HolyBlackCat