如何在调用函数之前推断 auto?

2024-01-03

在尝试时函数返回类型推导 http://en.wikipedia.org/wiki/C%2B%2B14#Function_return_type_deduction

auto func();

int main() { func(); }

auto func() { return 0; }

错误:在扣除“auto”之前使用“auto func()”

有没有一种方法可以使用此功能而无需在调用前指定定义?对于大型调用树,重新排列函数以便在调用它们的所有位置之前看到它们的定义会变得很复杂。当然,可以推迟评估,直到找到特定的函数定义,然后可以推导出 auto。


不,那里没有。

甚至忽略实际问题(需要多次编译、通过相互递归类型定义轻松生成不可判定的返回类型、在一切解决时难以隔离编译错误源等)和设计问题(前向声明几乎无用) ,C++11 的设计考虑到了易于实现。那些让编写编译器变得更加困难的事情需要强有力的理由。

无数的限制auto这意味着将其放入现有编译器中确实很容易:根据我的经验,它是最受支持的 C++11 功能之一。 C++14 放宽了许多限制,但并没有达到您所描述的程度。每一项放松都需要有理由和信心,证明编译器编写者为实现它而付出的成本是值得的。

我现在甚至不想要这个功能,因为我喜欢我的函数的签名至少在我调用它们时是可推导的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在调用函数之前推断 auto? 的相关文章

随机推荐