为何构造函数相比聚合初始化会带来额外开销?
聚合结构体添加构造函数后的代码体积与性能变化
我注意到,为原本属于聚合类型的结构体添加构造函数后,汇编输出的代码量略有增加。示例代码如下:
struct Foo1 { std::string value; }; struct Foo2 { Foo2() = default; Foo2(auto&& x) : value { std::forward<decltype(x)>(x) } {} std::string value; };
对比这两个结构体可见,添加自定义构造函数的Foo2不仅代码体积有所增长,还存在明显的性能损耗。
内容的提问来源于stack exchange,提问作者Chris_F
相关产品推荐
相关产品推荐

