次のクラスを考えてみましょう:
struct T {
T() {}
T(T&) {cout << "1";}
T(const T&) {cout << "2";}
};
T::T(T&)
次の初期化よりも一致する理由T::T(const T&)
:
T a;
T b = a;
オーバーロードされた両方のコピー ctor は簡単な変換しか必要としないのに、なぜあいまいさがないのでしょうか?
次のクラスを考えてみましょう:
struct T {
T() {}
T(T&) {cout << "1";}
T(const T&) {cout << "2";}
};
T::T(T&)
次の初期化よりも一致する理由T::T(const T&)
:
T a;
T b = a;
オーバーロードされた両方のコピー ctor は簡単な変換しか必要としないのに、なぜあいまいさがないのでしょうか?