readability-redundant-casting
Detects explicit type casting operations that involve the same source and
destination types, and subsequently recommend their removal. Covers a range of
explicit casting operations, including static_cast
, const_cast
, C-style
casts, and reinterpret_cast
. Its primary objective is to enhance code
readability and maintainability by eliminating unnecessary type casting.
int value = 42;
int result = static_cast<int>(value);
In this example, the static_cast<int>(value)
is redundant, as it performs
a cast from an int
to another int
.
Casting operations involving constructor conversions, user-defined conversions, functional casts, type-dependent casts, casts between distinct type aliases that refer to the same underlying type, as well as bitfield-related casts and casts directly from lvalue to rvalue, are all disregarded by the check.
Options
- IgnoreMacros
If set to true, the check will not give warnings inside macros. Default is true.
- IgnoreTypeAliases
When set to false, the check will consider type aliases, and when set to true, it will resolve all type aliases and operate on the underlying types. Default is false.