目前,offsetof仅适用于标准布局类型.但是,我从来没有理解这个限制.当然,对于具有虚拟继承的类型,offsetof无法工作.但对于没有虚拟继承的类型,它可以.我知道,该标准允许非标准布局类型为每个实例具有不同的成员偏移量.但是,我从来没有听说过任何使用它的编译器实现.为什么会这样做?
我所知道的所有编译器,对于没有虚拟继承的类型,成员的偏移量是编译时常量.
所以问题是:
offsetof?(我在stackoverflow中已经阅读了很多相关的答案,并在各个地方进行了讨论,但我还没有找到原因).