red-squiggle不存在的依赖名称(例如C. :: nonMember)为错误

问题描述 投票:0回答:1

如何使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

c++ visual-studio templates resharper
1个回答
2
投票

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

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

现在我们可以打电话给f<int>()时应该突出什么?专业化的可能性意味着对依赖名称进行此类诊断是难以处理的。

© www.soinside.com 2019 - 2024. All rights reserved.