2013-04-06 90 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

相關問題