红字不存在的依赖名称(例如C <t> :: nonMember)为错误

时间:2019-02-27 08:04:36

标签: 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

1 个答案:

答案 0 :(得分:2)

Resharper没错。无法知道这样的成员不存在,因为该成员是依赖的,因此可以存在。

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

当我们可以致电f<int>()时,应该突出显示什么?专业化的可能性意味着对依赖名称进行此类诊断很困难。