C++ 关键字auto的使用非常有用

C++ 关键字auto的使用非常有用,c++,variables,auto,C++,Variables,Auto,我对这个迷人的发现感到非常惊讶,我想知道依靠它有多“安全” auto关键字在历史上很少被使用,因为它是隐含的: { auto int x=5; } 同: { int x=5; } 于是我就开始在Stackoverflow周围摸索,这是我极力推荐的一个很棒的网站。我发现了这个迷人的金块: 这确实减少了大量的打字。例如,我现在正在做的不是这个: std::chrono::high_resolution_clock::time_point t1 = std::chrono::high

我对这个迷人的发现感到非常惊讶,我想知道依靠它有多“安全”

auto
关键字在历史上很少被使用,因为它是隐含的:

{ auto int x=5; }
同:

{ int x=5; }
于是我就开始在Stackoverflow周围摸索,这是我极力推荐的一个很棒的网站。我发现了这个迷人的金块:

这确实减少了大量的打字。例如,我现在正在做的不是这个:

 std::chrono::high_resolution_clock::time_point 
     t1 = std::chrono::high_resolution_clock::now();
我可以这样做:

 auto t2(std::chrono::high_resolution_clock::now());
所以我想知道的是。。。。通过经常这样做,我养成了多好的习惯


Stackoverflow上的“auto”标记表示,当可以“明确推断”类型时,该关键字起作用。这对我来说意味着,只要你不打算支持该语言老一辈的编译器,这是一个相当安全和良好的习惯。

你可以向谷歌学习,谷歌与我们分享了其关于“auto”首选用法的智慧:

使用“自动”可避免类型名称过于混乱。当清单类型声明有助于可读性时,继续使用它,并且除了局部变量之外,不要对任何东西使用auto


阅读更多关于

的文章,将其很好地用于返回类型推断(在这里也适用):您的代码最好说“这个东西的类型是X”,还是说“这个东西的类型是无关的,编译器需要知道,我们可能可以解出它,但我们不需要说它”与chris一致。在适当的情况下使用
auto
。不要滥用它。你的代码变得更加难读。关于谷歌的C++风格指南的警告:很多有经验的C++程序员在堆栈溢出时不同意指南中的许多要点。然而,关于
auto
的那个特别的小道消息是明智的。这是一个很好的总结。避免阅读会妨碍可读性,这一点很正确,老实说,我的主要抱怨是有人滥用它。谢谢大家,有很多好的观点。