Ho giocato con clang un po 'di tempo e sono incappato in "test/SemaTemplate/dependent-template-recover.cpp" (nella distribuzione clang) che dovrebbe fornire suggerimenti per il ripristino da un modello errore.Errore di modello di confusione
Il tutto può essere facilmente messo a nudo fino 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 derivanti dai 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 un momento difficile comprensione esattamente dove si suppone che si debba inserire la parola chiave template
in modo che il codice sia sintatticamente corretto?
Hai provato a inserirli dove punta la freccia? –
Simile a [questo] (http://stackoverflow.com/questions/3691420/compiler-error-when-using-integer-as-template-parameter/) e [this] (http://stackoverflow.com/questions/3621719/c-template-syntax) –