繁体   English   中英

编译器复制结构的优化?

[英]Compiler Optimization of copy construction?

如下代码:

#include <iostream>

using namespace std;

struct A {
    A(int a) { cout << "cast "; }
    A(const A& a) { cout << "copy " ;}
};

int main () {
    int x = 0;
    A a = x;
    return 0;
}

给出输出cast ,而我希望输出为: cast copy 它是编译器优化,还是对所发生的事情的简单误解?

提前致谢!

通过构造函数A(int i)intA的隐式转换int中。

因此,我猜编译器做了一些优化。

如果对第一个构造函数使用explicit关键字,则它将无法编译。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM