forked from OSchip/llvm-project
24 lines
1.2 KiB
ReStructuredText
24 lines
1.2 KiB
ReStructuredText
.. title:: clang-tidy - cert-dcl21-cpp
|
|
|
|
cert-dcl21-cpp
|
|
==============
|
|
|
|
This check flags postfix ``operator++`` and ``operator--`` declarations
|
|
if the return type is not a const object. This also warns if the return type
|
|
is a reference type.
|
|
|
|
The object returned by a postfix increment or decrement operator is supposed
|
|
to be a snapshot of the object's value prior to modification. With such an
|
|
implementation, any modifications made to the resulting object from calling
|
|
operator++(int) would be modifying a temporary object. Thus, such an
|
|
implementation of a postfix increment or decrement operator should instead
|
|
return a const object, prohibiting accidental mutation of a temporary object.
|
|
Similarly, it is unexpected for the postfix operator to return a reference to
|
|
its previous state, and any subsequent modifications would be operating on a
|
|
stale object.
|
|
|
|
This check corresponds to the CERT C++ Coding Standard recommendation
|
|
DCL21-CPP. Overloaded postfix increment and decrement operators should return a
|
|
const object. However, all of the CERT recommendations have been removed from
|
|
public view, and so their justification for the behavior of this check requires
|
|
an account on their wiki to view. |