| title |
Warning C26466 |
| ms.date |
03/22/2018 |
| f1_keywords |
C26466 |
NO_STATIC_DOWNCAST_POLYMORPHIC |
|
| helpviewer_keywords |
|
| description |
CppCoreCheck rule that enforces C++ Core Guidelines Type.2 |
Don't use static_cast downcasts. A cast from a polymorphic type should use dynamic_cast.
C++ Core Guidelines Type.2
struct Base {
virtual ~Base();
};
struct Derived : Base {};
void bad(Base* pb)
{
Derived* test = static_cast<Derived*>(pb); // C26466
}
void good(Base* pb)
{
if (Derived* pd = dynamic_cast<Derived*>(pb))
{
// ... do something with Derived*
}
else
{
// ... do something with Base*
}
}