Использование 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'.
Код: Выделить всё
/O2
Это также происходит со второй существующей иерархией классов.
Я не знал, что можно даже скрыть конструктор, который никогда не может быть виртуальным для начать с?
Это какие-то странные ложные срабатывания или происходит что-то зловещее?
Код: Выделить всё
#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]