gpt4 book ai didi

c++ - 关于函数参数和默认初始化的规则

转载 作者:搜寻专家 更新时间:2023-10-31 01:06:03 25 4
gpt4 key购买 nike

int foo(int arg1, int arg2 = arg1)
{
std::cout << arg2;
}

为什么c++标准不允许这种默认参数初始化之王?

最佳答案

不寻常的是,这是一个标准确实给出了理由的案例(尽管不是特别有说服力的理由):

C++11 8.3.6/9 The order of evaluation of function arguments is unspecified. Consequently, parameters of a function shall not be used in a default argument, even if they are not evaluated.

这不是一个特别困难的限制,因为您可以通过重载实现相同的效果:

int foo(arg1) {return foo(arg1, arg1);}

关于c++ - 关于函数参数和默认初始化的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21559238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com