red-squiggle несуществующее зависимое имя (например, C <T>:: nonMember) как ошибка - PullRequest
0 голосов
/ 27 февраля 2019

Как сделать 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 голосов
/ 27 февраля 2019

Решарпер не ошибается.Он не может знать, что такого члена не существует, потому что член зависимый, и поэтому может существовать.

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

Что следует выделить сейчас, когда мы можем позвонить f<int>()?Возможность специализаций означает, что выполнение такой диагностики трудно поддается зависимым именам.

...