Ho giocato con clang per un po 'e sono incappato in "test / SemaTemplate / dependance-template-recover.cpp" (nella distribuzione clang) che dovrebbe fornire suggerimenti per il ripristino da un errore di modello.
Il tutto può essere facilmente ridotto a un esempio minimo:
template<typename T, typename U, int N> struct X {
void f(T* t)
{
// expected-error{{use 'template' keyword to treat 'f0' as a dependent template name}}
t->f0<U>();
}
};
Il messaggio di errore prodotto da clang:
tpl.cpp:6:13: error: use 'template' keyword to treat 'f0' as a dependent template name
t->f0<U>();
^
template
1 error generated.
... Ma ho difficoltà a capire dove esattamente si dovrebbe inserire la template
parola chiave per avere il codice sintatticamente corretto?