# Extra Clang Tools 21.1.6 documentation

## clang-tidy - cppcoreguidelines-pro-type-static-cast-downcast

# cppcoreguidelines-pro-type-static-cast-downcast

This check flags all usages of `static_cast`, where a base class is casted to a derived class. In those cases, a fix-it is provided to convert the cast to a `dynamic_cast`.

Use of these casts can violate type safety and cause the program to access a variable that is actually of type `X` to be accessed as if it were of an unrelated type `Z`.

This rule is part of the Type safety (Type.2) profile from the C++ Core Guidelines.

## Options

StrictMode

  When set to false, no warnings are emitted for casts on non-polymorphic types. Default is true.