作为参考,干扰大小是 C++17, P0154R1的一部分,并为 C++23, P1847R4提出了强制声明顺序。
据我所理解...
第一个提议要求编译器将对齐的成员变量移得更近/更远。
第二个建议将要求编译器按照类中的声明顺序排列成员变量。
在我看来,第二个提案比第一个提案更有优势。hardware_destructive_interference_size
必然需要在两个成员变量之间留出未使用的内存,而不能选择用其他成员填充它。hardware_constructive_interference_size
将减少为警告说“不能这样做,请尝试自己重新排序成员变量”。