[英]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)
从int
到A
的隐式转换int
中。
因此,我猜编译器做了一些优化。
如果对第一个构造函数使用explicit
关键字,则它将无法编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.