相关疑难解决方法(0)

令人困惑的模板错误

我一直玩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>();
    }
};
Run Code Online (Sandbox Code Playgroud)

clang产生的错误消息:

tpl.cpp:6:13: error: use 'template' keyword to treat 'f0' as a dependent template name
         t->f0<U>();
            ^
            template 
1 error generated.
Run Code Online (Sandbox Code Playgroud)

...但我很难理解究竟应该插入template关键字以使代码在语法上正确?

c++ templates llvm clang

78
推荐指数
4
解决办法
2万
查看次数

标签 统计

c++ ×1

clang ×1

llvm ×1

templates ×1