struct my
{
my(){ std::cout<<"Default";}
my(const my& m){ std::cout<<"Copy";}
~my(){ std::cout<<"Destructor";}
};
int main()
{
my m(); //1
my n(my()); //2
}
予想される出力:コンストラクタ呼び出しメカニズム
1) Default
2) Copy
実際の出力:
コンストラクタ呼び出しメカニズムの私の理解が間違っているのですか?
Note
私は簡潔にするためにヘッダーファイルを省略しました。
RVOとは呼ばれませんが、実際には一般的な最適化です。 – MSalters
@MSalters:はい、これはRVOの変種だと思います。 :) –