这似乎适用于我的编译器,但它是标准的吗?我应该做个记忆吗?
struct Foo { u32 a, b; u8 c[24]; }
class Bar {
Foo f;
public:
Bar(Foo&f):f(f){}
};发布于 2014-10-31 05:56:10
在C++11国际标准中,struct Foo被认为是POD (普通旧数据,指第9条spec#10),它是trivially copyable type(参见第3.9条spec#9)。
按位复制通常取决于类型的大小,对于小类型,可以将其优化为一个简单的movl/movq指令。编译器将完成这项工作,因此在class Bar的构造函数块中不需要class Bar,因为您已经在初始化程序列表Bar(Foo&f):f(f)中设置了值。
https://stackoverflow.com/questions/26667523
复制相似问题