给定以下 C++ 代码:
struct foo {
// Some definition with copy constructor.
};
const foo &getData();
const foo &alt1(getData());
const foo &alt2 = getData();
合理的编译器会为 alt1
和 alt2
生成不同的代码吗?换句话说,alt1
会导致复制构造函数运行,还是允许编译器对其进行优化并直接分配引用?
最佳答案
在这两种情况下,您都初始化了一个引用(不是对象),因此不会运行复制构造函数。
关于c++ - 将为此代码运行复制构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8807351/