相关疑难解决方法(0)

函数默认参数值取决于 C++ 中的参数名称

如果在C++中定义了一个新变量,则可以在初始化表达式中使用该变量的名称,例如:

int x = sizeof(x);
Run Code Online (Sandbox Code Playgroud)

那么函数参数的默认值又如何呢?是否允许通过名称引用参数?例如:

void f(int y = sizeof(y)) {}
Run Code Online (Sandbox Code Playgroud)

该函数在 Clang 中被接受,但在 GCC 中被拒绝,并出现错误:

'y' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)

演示: https: //gcc.godbolt.org/z/YsvYnhjTb

这里是哪个编译器?

c++ compiler-errors language-lawyer function-declaration default-arguments

46
推荐指数
2
解决办法
2438
查看次数

我可以从上一个参数设置默认参数吗?

是否可以在函数参数列表中使用先前的参数作为参数列表中后续参数的默认值?例如,

void f( int a, int b = a, int c = b );
Run Code Online (Sandbox Code Playgroud)

如果可以,有任何使用规则吗?

c++ arguments function

42
推荐指数
3
解决办法
1万
查看次数