Geometry classes generally have two sets of functions, one that operates
on the object and modifies it (e.g. Rectangle::scaleBy()), and one that
performs the same operations by instead return a modified copy of the
object, leaving the original untouched (e.g.Rectangle::scaledBy()). As
the names are close, they can easily be mistaken, with the const version
used instead of the in-place version.
To catch these errors at compile time, mark the const versions with
__nodiscard, as there is no use case for calling them without using the
result of the call.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>