gpt4 book ai didi

c++ - 为什么我不能在 gcc 的初始值设定项中访问默认参数?

转载 作者:可可西里 更新时间:2023-11-01 17:39:09 25 4
gpt4 key购买 nike

这在 clang 中编译但不在gcc :

void f(int x = decltype(x){});

gcc 中的错误表明 x 未在此范围内声明,但根据 3.3.2/1 变量 x 应该在范围内:

The point of declaration for a name is immediately after its complete declarator (Clause 8) and before its initializer (if any), except as noted below. [Example:

int x = 12;
{ int x = x; }

Here the second x is initialized with its own (indeterminate) value. — end example ]

那么clang是正确的吗? x 是否应该可以在它自己的初始化程序中访问?

PS:int x = x 作为参数在两个编译器中都失败了,但我不知道为什么。

最佳答案

海湾合作委员会是正确的;那是无效的。

C++11 8.3.6/9 [dcl.fct.default] parameters of a function shall not be used in a default argument, even if they are not evaluated.

关于c++ - 为什么我不能在 gcc 的初始值设定项中访问默认参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26658776/

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