Closed frederick-vs-ja closed 8 months ago
C++20 前显式指定模板实参的语法不支持 ADL, C++20 起支持(WG21 P0846R0、测试链接)。
namespace fvs { template<class T> const T& max(const T& l, const T& r) { return l > r ? l : r; } struct S {}; } int main() { auto p = static_cast<fvs::S*>(nullptr); /* unqualified */max<fvs::S*>(p, p); // error until C++20; OK since C++20 }
可能可以增加一些内容探讨这里的兼容问题。
目前也就 max 那里稍微提了一下名字查找,因为很经典的冲突,其他过多的概念不想提及。
C++20 前显式指定模板实参的语法不支持 ADL, C++20 起支持(WG21 P0846R0、测试链接)。
可能可以增加一些内容探讨这里的兼容问题。