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.