Tag: 依赖名称

条件运算符的返回types和两阶段查找

考虑下面的代码片段: struct Base { }; struct Derived : Base { }; void f(Base &) { std::cout << "f(Base&)\n"; } template <class T = int> void g() { Derived d; f(T{} ? d : d); // 1 } void f(Derived &) { std::cout << "f(Derived&)\n"; } int main() { g(); } 在这种情况下,我认为应该在第一阶段调用f的函数,因为它的参数types是不可信的Derived& ,因此被parsing为f(Base&) ,它是唯一的范围。 铿锵3.8.0与我同意 ,但GCC […]