AUTOSAR C++14 Rule M9-3-1
Const member functions shall not return
non-const pointers or references to class-data
Description
Rule Definition
const member functions shall not return
non-const pointers or references to class-data.
Rationale
A const object cannot be changed post initialization and can only invoke class member functions that are also declared as const. These member functions are not expected to change the state of the object.
If a const member function returns a non-const pointer or reference to a data member of the class, the function can modify the state of an object and violate developer expectations. To avoid this situation, when you define a const member function that returns a reference or a pointer to a class data member, specify the return type as const.
Polyspace Implementation
Polyspace® flags a violation of this rule only if a const member function returns a non-const pointer or reference to a non-static data member. The rule does not apply to static data members.
Troubleshooting
If you expect a rule violation but Polyspace does not report it, see Diagnose Why Coding Standard Violations Do Not Appear as Expected.
Examples
Check Information
| Group: Classes |
| Category: Required, Automated |
Version History
Introduced in R2019a