MISRA C++:2023 Rule 21.2.4
Description
Rule Definition
The macro offsetof
shall not be used.
Rationale
Using offsetof
exposes the memory layout of a class or structure and
breaks its encapsulation. Additionally, use of the offsetof
macro can
result in undefined behavior if the specified member is a bit-field, static data member, or
member function.
Design your classes to avoid the need for offsetof
. For example, you
can use member functions or operator overloading to access members indirectly. If you need
to work with offsets, consider using member function pointers or designing your class to
provide the necessary access in a type-safe manner.
Polyspace Implementation
The rule checker reports a violation for any use of the offsetof
macro.
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: Language support library |
Category: Required |
Version History
Introduced in R2024b