gpt4 book ai didi

c++ - 隐式自动类型说明符

转载 作者:行者123 更新时间:2023-12-01 15:10:34 25 4
gpt4 key购买 nike

我想知道为什么在某些情况下不能完全省略auto关键字,例如

int main()
{
[](auto x){}(10); // why this?
[](x){}(10); // and not this?

auto x = 10;
x = 10;
}

是否存在歧义问题或类似问题?还是简单的设计选择?

最佳答案

考虑一下:

 struct x {};

[](x){}(10);

是具有未命名参数 x类型的lambda(根据当前语言规范)还是它是推导类型的名为 x的参数(根据您的建议)?您建议的语法与函数参数声明的现有语法不明确。

x = 10;


这甚至更成问题,因为它与分配没有区别。编写此代码的人可能正在尝试定义变量(您的建议),但也可以根据上下文分配现有变量。 C++(对于程序员)在语法上有太多歧义。我们应该避免添加更多。

关于c++ - 隐式自动类型说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62181852/

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