我一直在使用autoC++ 11标准中提供的新关键字来处理复杂模板类型,这是我认为它的设计目标.但我也用它来做:
auto foo = std::make_shared<Foo>();
Run Code Online (Sandbox Code Playgroud)
更加怀疑的是:
auto foo = bla(); // where bla() return a shared_ptr<Foo>
Run Code Online (Sandbox Code Playgroud)
我没有看到很多关于这个话题的讨论.似乎auto可能过度使用,因为类型通常是文档和健全性检查的一种形式.您在哪里绘制使用线auto以及此新功能的推荐用例是什么?
澄清:我不是要求哲学观点; 我要求标准委员会对该关键字的预期用途,可能还有关于如何在实践中实现该预期用途的评论.
旁注:此问题已移至SE.Programmers,然后返回Stack Overflow.关于这一点的讨论可以在这个元问题中找到.
这似乎auto是一个相当重要的功能,在C++ 11中添加似乎遵循许多较新的语言.与像Python这样的语言一样,我没有看到任何显式变量声明(我不确定是否可以使用Python标准).
使用auto声明变量而不是显式声明它们有缺点吗?
可能重复:
使用C++ 0x auto关键字多少钱
我们(作为社区)是否有足够的经验来确定何时和/或是否滥用汽车?
我真正想要的是最佳实践指南
简单的经验法则可以在80%的情况下快速遵循.
由于上下文这个问题由我的回应引发了这里