我一直在使用新的 auto
关键字在 C++11 标准中用于复杂的模板类型,我相信这是为它设计的。但我也将它用于以下方面:
auto foo = std::make_shared<Foo>();
更怀疑的是:
auto foo = bla(); // where bla() return a shared_ptr<Foo>
我没有看到太多关于这个话题的讨论。似乎 auto
可能被过度使用,因为类型通常是文档和完整性检查的一种形式。您在哪里使用 auto
,这个新功能的推荐用例是什么?
澄清一下:我不是在寻求哲学观点;我要求标准委员会对该关键字的预期用途,可能会评论如何在实践中实现该预期用途。
原文由 Alan Turing 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为人们应该使用
auto
关键字,只要乍一看很难说如何编写类型,但是表达式右侧的类型是显而易见的。例如,使用:在
boost::multi_index
中获取复合键类型,即使您知道它是int
。您不能只写int
因为将来可能会更改。在这种情况下,我会写auto
。因此,如果
auto
关键字在特定情况下提高了可读性,请使用它。当读者很清楚auto
代表什么类型时,您可以写auto
。这里有些例子: