gpt4 book ai didi

c++ - C++ 编译器会优化按值返回代码吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:41 25 4
gpt4 key购买 nike

假设我使用带有 -O2 的 Visual Studio 或现代 GCC。编译器会在 func() 中创建 S 然后将其复制到 my_result,还是会创建 my_result构造函数 (5, 6, 5 + 6) 没有创建临时 S?

注意: 函数 func() 定义及其用法在单独的 .obj 文件中!

struct S
{
S(int _x, int _y, int _z) : x(_x), y(_y), z(_z) { }
int x, y, z;
};

S func(int a, int b)
{
return S(a, b, a + b);
}


/// USAGE ///

S my_result = func( 5, 6 );

最佳答案

现代编译器通常会优化这种操作。参见 return value optimization

关于c++ - C++ 编译器会优化按值返回代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18594241/

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