在 previous question 中, 一个普通的按值返回函数似乎总是将其 return
参数复制到从它分配的变量中。
这是标准要求的,还是可以通过在函数体内构建“分配给”变量来优化函数?
struct C { int i; double d; };
C f( int i, int d ) {
return C(i,d); // construct _and_ copy-construct?
}
int main() {
C c = f( 1, 2 );
}
最佳答案
标准允许此处任何级别的复制遗漏:
- 构造一个局部临时变量,将其复制构造为返回值,并将返回值复制构造为局部“c”。 或
- 构造一个本地临时变量,并将其复制构造到“c”中。 或
- 用参数“i,d”构造“c”
关于c++ - 复制构造函数与返回值优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/665825/