在C++函数中支持默认第一个参数的历史

Ala*_*ing 1 c++ parameters standards default function

正如这个问题重申的那样,可以为C++函数中的第一个参数提供默认参数.所以以下

void foo(int a, int b=5); // good 
void foo(int a=5, int b=5); // used to be an error
void foo(int a=5); // used to be an error
Run Code Online (Sandbox Code Playgroud)

但是,我记得在我的编程教育中很早就开始学习这是不允许的.这一点开始改变了吗?什么C++标准删除了这个限制?由于我在Visual Studio中完成了大部分早期编程,也许这甚至不是标准问题,而是特定的编译器限制,如果你这样做,你还记得哪些(大约)编译器版本有这个限制吗?

小智 5

你说:

 void foo(int a=5); // used to be an error
Run Code Online (Sandbox Code Playgroud)

从来没有这种情况发生过.你记得错了.