2013-04-06 60 views
3

我对这个迷人的发现有点惊讶,我想知道它是多么“安全”,依靠它。令人惊讶的有用的关键字自动使用

auto关键字历来很少,因为它使用的是隐含反正暗示:

{ auto int x=5; } 

是一样的:

{ int x=5; } 

所以当时我戳我的周围#1,这是路一个伟大的网站,我强烈推荐。我发现了这个迷人的金块:In the new c++ you can use auto to infer type.

这肯定会减少很多打字。例如,而不是这个,我很努力,现在:

std::chrono::high_resolution_clock::time_point 
    t1 = std::chrono::high_resolution_clock::now(); 

我可以做到这一点,而不是:

auto t2(std::chrono::high_resolution_clock::now()); 

所以想什么,我知道是怎么....我是否经常这样做而建立一种习惯?

Stackoverflow上的“auto”标记表示,这个关键字在可以“明确推断”出什么类型时起作用。这意味着,只要你不打算支持那些老一代语言的编译器,这是非常安全和良好的习惯。

+3

正如[有人](http://stackoverflow.com/questions/15737223/when-should-i-use-c1y-automatic-return-type-deduction#comment22361511_15737723)所以很好地把它用于返回类型演绎(它也适用于这里):*对于你的代码来说,“这个事物的类型是X”还是更适合你的代码说:“类型这个东西是无关紧要的,编译器需要知道,我们可以解决它,但我们不需要说出来“* – chris 2013-04-06 05:03:12

+1

与克里斯同意。在适当的地方使用'auto'。不要滥用它。你的代码变得难以阅读。 – WhozCraig 2013-04-06 05:09:53

回答

3

您可以从谷歌谁分享了自己的智慧关于“自动”与我们其余的人首选用学:

使用自动避免只是混乱的类型名称。当它有助于可读性时,继续使用清单类型声明,并且从不使用auto作为除本地变量之外的任何内容。

更多详情http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#auto

+0

关于Google的C++风格指南的注意事项:Stack Overflow上的很多经验丰富的C++程序员都不同意该指南中的许多观点。尽管如此,关于“auto”的特殊消息是明智的。 – 2013-04-06 05:14:09

+0

这是一个很好的总结。避免它受到阻碍*可读性是专注的,老实说,我是那些滥用它的人的主要婊子。 – WhozCraig 2013-04-06 05:15:00

+0

谢谢大家,好点很多。 – johnbakers 2013-04-06 05:25:18

相关问题