次のコード:
#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
。それはコンパイラの最適化ですか、それとも何が起こっているのかの単純な誤解ですか?
前もって感謝します!