让我们假设我使用Visual Studio或现代GCC与-O2.编译器会S在里面创建func()然后将其复制到a 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 );
Run Code Online (Sandbox Code Playgroud)