Tre*_*key 13 c++ function auto return-type-deduction c++14
同时试验函数返回类型推导
auto func();
int main() { func(); }
auto func() { return 0; }
Run Code Online (Sandbox Code Playgroud)
错误:在扣除'auto'之前使用'auto func()'
有没有办法使用此功能而无需在通话前指定定义?使用大型调用树时,重新排列函数变得复杂,以便在调用它们的所有位置之前看到它们的定义.当然,可以暂时进行评估,直到找到特定的函数定义,然后可以推导出auto.
不,那里没有.
甚至忽略了实际问题(需要多次通过编译,通过相互递归的类型定义轻松制作不可判定的返回类型,在一切结算时难以隔离编译错误源等),以及设计问题(前向声明几乎无用) ,C++ 11的设计考虑了易于实现.使编写编译器变得更难的事情需要强有力的理由.
无数的限制auto
意味着将它滑入现有的编译器非常容易:根据我的经验,它是最受支持的C++ 11功能之一.C++ 14放宽了许多限制,但并没有像你描述的那么多.每次放松都需要理由和信心,编译器编写者需要付出代价才能实现.
我现在甚至不想要这个功能,因为我喜欢我的功能的签名至少可以在我称之为可以推断的地方.