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是首选的,但两者对于 的初始化是模棱两可的?#1int const&int

4

1 回答 1

3
于 2016-09-01T18:25:52.247 回答