c++ - 将为此代码运行复制构造函数吗?

标签 c++ optimization reference copy-constructor language-lawyer

给定以下 C++ 代码:

struct foo {
  // Some definition with copy constructor.
};

const foo &getData();

const foo &alt1(getData());
const foo &alt2 = getData();

合理的编译器会为 alt1alt2 生成不同的代码吗?换句话说,alt1 会导致复制构造函数运行,还是允许编译器对其进行优化并直接分配引用?

最佳答案

在这两种情况下,您都初始化了一个引用(不是对象),因此不会运行复制构造函数。

关于c++ - 将为此代码运行复制构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8807351/

相关文章:

c++ - 为什么需要引用 const 以避免复制参数

reference - 如何使用 openFromComponent 将 SnackBarRef 注入(inject)到组件中

c++ - 什么决定了调用 delete 时写入 C++ 指针的内容?

c++ - "Undefined reference to"- C++/Qt 中的错误/静态成员变量

c++ - 从文件中读取十六进制数

mysql - 执行多个 UPDATE 语句的正确方法是什么?

c++ - GDIplus 比例位图

java - 在 Jenetics 中定义约束

c++ - 如何优化简单的高斯滤波器的性能?

c++ - 对引用计数感到困惑