Я грався з clang деякий час, і я натрапив на "test / SemaTemplate / залежний-шаблон-відновити.cpp" (у розподілі clang), який повинен містити підказки для відновлення після помилки шаблону.
Все це можна легко звести до мінімального прикладу:
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>();
}
};
Повідомлення про помилку, видане clang:
tpl.cpp:6:13: error: use 'template' keyword to treat 'f0' as a dependent template name
t->f0<U>();
^
template
1 error generated.
... Але мені важко зрозуміти, куди саме слід вставити template
ключове слово, щоб код був синтаксично правильним?