1
'auto'作为函数参数的模板参数占位符
C ++ 20允许使用auto函数参数类型。 它是否还允许将函数参数类型auto用作模板参数占位符(不相似,但以C ++ 17 template <auto>的精神)。 因此,以下代码是C ++ 20之前的版本: template<typename First, typename Second> void printPair(const std::pair<First, Second>& p) { std::cout << p.first << ", " << p.second; } 可以写成: void printPair(const std::pair<auto, auto>& p) { std::cout << p.first << ", " << p.second; } 它确实可以编译,并且可以很好地与实验性GCC实现概念配合使用。 它是C ++ 20的合法语法吗?