나는 한동안 clang을 가지고 놀았고 템플릿 오류에서 복구하기위한 힌트를 제공해야하는 "test / SemaTemplate / dependent-template-recover.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
코드 구문이 정확하도록 키워드를 정확히 삽입해야하는 위치를 이해하기가 어렵습니다 .