在 C++ 中,给定替代方案:
void fun(int arg1, int arg2opt = 0);
// vs.
void fun(int arg1, int arg2);
void fun(int arg1) {
fun(arg1, 0);
}
想要使用此功能的用户代码是否有任何差异,也就是说,给定任何代码库,当我将第一个定义更改为第二个定义时,哪些代码构造会中断(在编译时或运行时)?(重载解决方案?名称查找?分配fun
给函数指针?模板中的用法(std::function
)?...)
或者这些在语义上是否相同?(这里有一些我知道的细节,与这个问题无关)