The C++17 Standard says in [support.types.layout]:
Use of the
offsetofmacro with a type other than a standard-layout class is conditionally-supported.
And in [defns.cond.supp]:
conditionally-supported
program construct that an implementation is not required to support
I find this definition of offsetof not very precise.
Does it mean that I can safely attempt to use this with non standard-layout classes?
How is "conditionally-supported" different from implementation defined?
Is a compiler not supporting
offsetoffor a particular type of class required to produce a diagnostic?