たとえば、次のように、そのクラスのオブジェクトを値で受け取るコンストラクターを持つクラスを作成しようとしている場合。
class X{
X(){}
X(X x){} //Error!
};
次に、g++は2番目のコンストラクターに対して次のように文句を言います。
error: invalid constructor; you probably meant ‘X (const X&)’
親愛なるコンパイラ、いいえ、私はconst参照を意味していませんでした。今回は、自分が書いたことをやりたかったのです。パラメーターxを値で渡すことです。なぜこれが無効なのですか?