...
EXP62-CPP-EX1: It is permissible to access the bits of an object representation when that access is otherwise unobservable in well-defined code. For instance, it is acceptable to call std::memcpy()
on an object containing a bit-field, as in the following example, because the read and write of the padding bits cannot be observed. However, the code must still comply with OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions.
Code Block | ||||
---|---|---|---|---|
| ||||
#include <cstring> struct S { int i : 10; int j; }; void f(const S &s1) { S &s2; std::memcpy(&s2, &s1, sizeof(S)); } |
...
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
SEI CERT C++ Coding Standard | OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions |
|
Bibliography
[ISO/IEC 14882-2014] | Subclause 3.9, "Types" Subclause 3.10, "Lvalues and Rvalues" Clause 9, "Classes" |
...