...
Noncompliant Code Example
In this noncompliant code example, a type that is not a standard-layout class is passed to the offsetof() macro, resulting in undefined behavior:
| Code Block | ||||
|---|---|---|---|---|
| ||||
#include <cstddef>
struct D {
virtual void f() {}
int i;
};
void f() {
size_t off = offsetof(D, i);
// ...
} |
...
The noncompliant code example does not emit a diagnostic when compiled with the /Wall switch in Microsoft Visual Studio 2015 on x86, resulting in off being 4, due to the presence of a vtable for type D.
...