gpt4 book ai didi

c++ - 类(class)成员重新排序

转载 作者:行者123 更新时间:2023-11-27 23:43:09 24 4
gpt4 key购买 nike

最近我读到有关编译器重新排序类成员的能力。来自 C++ 11 标准:

§ 9.2.13

[...] The order of allocation of non-static data members with different access control is unspecified.

我想知道实际情况如何。主要编译器(我对 g++、clang 和 msvc 感兴趣)是否在某些情况下对类成员重新排序?

如果不是,是否还有其他可能导致不同编译器(或使用不同编译器标志时)的对象布局不同的情况?假设没有使用虚拟方法,因此没有创建 vtable。

最佳答案

事实上,这个问题没有实际意义。确保类布局符合您的期望的唯一符合标准的方法是确保类是 Standard Layout Type。 - 这将保证在每个符合标准的编译器上都有相同的布局。

这种类型的要求之一是所有成员都具有相同的访问控制。

关于c++ - 类(class)成员重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52766536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com