gpt4 book ai didi

c++ - auto using parens 可以表示函数原型(prototype)吗?

转载 作者:可可西里 更新时间:2023-11-01 18:36:18 24 4
gpt4 key购买 nike

这个问题是由于无法对 auto 使用统一初始化语法而产生的。关键字,因为它将其视为 std::initializer_list<T> (评论中的解释 here )。

以下面的代码为例:

class X { };
int x( X() ); // function prototype (1)
auto x( X() ); // copy/move construction of an X, function prototype or compile-time error?

编译器对 auto x 做了什么?

每种可能性的推理:

复制/移动构造:我认为这是正确的行为,因为 (1) 被视为一种缺陷。

函数原型(prototype):似乎不太可能,因为没有尾随返回类型。

编译时错误:如果编译器将其解析为函数原型(prototype),则可能会由于缺少尾随返回类型而导致编译时错误。

C++0x 标准说这应该解释成什么?

最佳答案

我明白了

error: 'x' function uses 'auto' type specifier without late return type

编译器期待类似的东西

auto x( X() ) -> int;

相当于第 2 行。

关于c++ - auto using parens 可以表示函数原型(prototype)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6747400/

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