Il seguente codice è accettato da gcc, vC++ e clang.È conforme allo standard C++ per definire una variabile usando `A <int> :: modello B <int> x;`?
template<class T>
struct A
{
template<class U>
struct B
{};
};
int main()
{
A<int>::B<int> y; // OK as expected
A<int>::template B<int> x; // Also OK! Is this standard-compliant?
};
Va C++ standard compliant per definire una variabile utilizzando A<int>::template B<int> x;
?
B è un modello di tipo dipendente da modello, quindi la seconda sintassi è perfettamente corretta. – Quentin
Potrebbe farmi riferimento alla pagina dello standard che specifica questo utilizzo? Grazie. – xmllmx
@peppe Non è un duplicato, perché non è necessario utilizzare 'template' qui. – juanchopanza