c++ - 红色波浪形不存在的依赖名称(例如 C<T>::nonMember )作为错误

标签 c++ visual-studio templates resharper

如何使 Resharper 语法高亮显示不存在的相关名称(例如成员字段)作为错误?

在下面的代码中,我期望 a.nonMember到有红色波浪线。

template<class T>class Test1{
    public: int member;
};
template<class T>void f(){
    Test1<T> a;
    a.member=5;
    a.nonMember=8;    //<-- expect red squiggle here
}

然而,并没有这样的红色波浪线。

相信一定有这样的功能,
因为Resharper已经可以识别Test1<>的所有字段正确(如下图所示)。

enter image description here

最佳答案

Resharper 没有错。它无法知道这样的成员不存在,因为该成员是从属的,因此可能存在。

template<>
class Test1<int> {
    public: int nonMember;
};

当我们可以调用f<int>()时,现在应该强调什么? ?特化的可能性意味着对相关名称进行此类诊断是棘手的。

关于c++ - 红色波浪形不存在的依赖名称(例如 C<T>::nonMember )作为错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54900697/

相关文章:

C++ 部分模板特化语法

visual-studio - OpenSSL WinINET 客户端

c++ - 继承模板类并连接到信号

c++ - 预计 2.6.16 和 2.6.26 内核版本之间出现 "kernel too old"错误

c++ - C++在内部声明变量时如何生成随机地址?为什么它不线性存储它们?

c# - 内置比较叠加的 Visual Studio

c++ - 在 C++ 中使用 'void' 模板参数

c++ - 有没有一种方法来存储通用的模板化函数指针?

c++ - 初始化 const boost multi_array

c++ - 对此 cpp 代码使用 cl.exe (Visual Studio 2008) 编译错误