C++标准规定,单个访问部分中的成员变量必须按照它们声明的顺序在内存中排列。同时,编译器可以自由选择访问部分之间的相互顺序。这种自由性理论上使得无法链接由不同编译器创建的二进制文件。那么,严格的部分内排序仍有哪些原因呢?而且,即将到来的C++09 新的C++11标准是否提供了一种“手动”完全确定对象布局的方式?
C++标准规定,单个访问部分中的成员变量必须按照它们声明的顺序在内存中排列。同时,编译器可以自由选择访问部分之间的相互顺序。这种自由性理论上使得无法链接由不同编译器创建的二进制文件。那么,严格的部分内排序仍有哪些原因呢?而且,即将到来的C++09 新的C++11标准是否提供了一种“手动”完全确定对象布局的方式?