title C26466 ms.date 03/22/2018 ms.topic reference f1_keywords C26466 helpviewer_keywords C26466 description CppCoreCheck rule that enforces C++ Core Guidelines Type.2 C26466 NO_STATIC_DOWNCAST_POLYMORPHIC Don't use static_cast downcasts. A cast from a polymorphic type should use dynamic_cast. See also C++ Core Guidelines Type.2 Example 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* } }