代码是这样的:
auto add(auto a, auto b) { return a + b; }
Run Code Online (Sandbox Code Playgroud)
违反ISO c ++ 14标准?该标准的未来版本是否允许代码编写?
[这]违反了ISO c ++ 14标准吗?
是的,您无法auto在C++ 14(或C++ 17)中使用参数来声明函数.此代码格式错误.
该标准的未来版本是否允许代码编写?
当前的Concepts TS允许这样做,它通常被称为简洁的函数模板语法.在Concepts中,含义相当于:
template <class T, class U>
auto add(T a, U b) { return a + b; }
Run Code Online (Sandbox Code Playgroud)
Concepts部分提议还允许使用概念名称,而不仅仅是auto.关于这是否将成为未来C++标准的一部分,这是一个悬而未决的问题.