14

次の点を考慮してください。

struct X {
    template <class T> operator T();  // #1
    template <class T> operator T&(); // #2
};

int        a = X{}; // error: ambiguous
int&       b = X{}; // calls #2
int const& c = X{}; // calls #2

の状況bは簡単で、#2実行可能な唯一の候補です。の初期化に#2は が好まれるが、 の初期化には 2 つがあいまいであることを示すルールは何ですか?#1int const&int

4

1 に答える 1

3
于 2016-09-01T18:25:52.247 に答える