一个C++函数可以有多个参数包。虽然这看起来不太实际,但是了解关于它们的语言规则还是很有趣的。例如,在两个重载的情况下:constexpr int f(auto..., auto...) { return 2; }调用没有参数的f时,f()选择MSVC中的版本1、Clang中的版本2和GCC中的ambiguous ove
当我注意到将一个函数模板的定义移动到一个不同的转换单元时,我正在使用函数模板来解析ambiguous error。下面是我试过的两个例子。第一个示例如预期的那样产生不明确的错误,但是当我将一个函数模板的定义移到另一个转换单元时,错误就消失了。X-Y in order version called我的问题是:
当我将第二个