Статический анализ MSVC 2019: функция C26434 скрывает невиртуальную функцию, которая является конструкторомC++

Программы на C++. Форум разработчиков
Anonymous
Статический анализ MSVC 2019: функция C26434 скрывает невиртуальную функцию, которая является конструктором

Сообщение Anonymous »

У меня есть шаблон класса, полученный из другого шаблона класса, полученного из шаблона третьего класса. У всех есть пустой конструктор по умолчанию и пустой виртуальный деструктор.
Использование MSVC 2019, компиляция для x64, C++17
При запуске При встроенном статическом анализе Visual Studio я получаю следующие два предупреждения:

Код: Выделить всё

Warning    C26434  Function 'Derived1::Derived1' hides a non-virtual function 'Base::Base'.

Код: Выделить всё

Warning    C26434  Function 'Derived2::Derived2' hides a non-virtual function 'Derived1::Derived1'.
Может стоит отметить, что я не вижу их при компиляции в Debug, только Release ()
Это также происходит со второй существующей иерархией классов.
Я не знал, что можно даже скрыть конструктор, который никогда не может быть виртуальным для начать с?
Это какие-то странные ложные срабатывания или происходит что-то зловещее?

Код: Выделить всё

#include 

template 
class Base
{
public:
Base() {}
virtual ~Base() {}
};

template 
class Derived1 : public Base
{
public:
Derived1() {}
virtual ~Derived1() {}
};

template 
class Derived2 : public Derived1
{
public:
Derived2() {}
virtual ~Derived2() {}
};

class T {};

int main() {
Derived2 d;
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79197015/msvc-2019-static-analysis-c26434-function-hides-a-non-virtual-function-which[/url]

Вернуться в «C++»