4 ms·
> there are types that do have standard layouts Out of interest (I'm not tracking the C++ standard much these days) such as? For example I know about the order
by zabzonk 5y ago
> there are types that do have standard layouts
Out of interest (I'm not tracking the C++ standard much these days) such as? For example I know about the order of struct members and bit fields, but that has always been the case in C, and so in C++.
- mhh__ 5y agohttps://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...