3 ms·
https://en.cppreference.com/w/cpp/types/is_standard_layout https://en.cppreference.com/w/cpp/types/is_standard_layout Bitfields are profoundly non-standard.
by mhh__ 5y ago
https://en.cppreference.com/w/cpp/types/is_standard_layout https://en.cppreference.com/w/cpp/types/is_standard_layout
Bitfields are profoundly non-standard.
- steerablesafe 5y agoBitfields are standard, what are you talking about?
- mathstuf 5y agoHow they live inside of a structure is far into implementation-defined land. No ABI (afaik) says where bits live if they do not fill an octet. In practice, the compilers agree with themselves over time, but that is "code as spec" which is everyone's favorite thing for interop.
- steerablesafe 5y agoIt's well defined in the system V ABI, isn't it? Compilers do follow that. Otherwise no layout is defined by the C and C++ standards, even outside of bitfields. edit: It's under "Bit-Fields" in [1]. I'm not entirely happy with the wording, but it's there. [1] https://raw.githubusercontent.com/wiki/hjl-tools/x86-psABI/x86-64-psABI-1.0.pdf#subsection.3.1.2 https://raw.githubusercontent.com/wiki/hjl-tools/x86-psABI/x...