什麼是C++11
已經足夠成熟的功能,我可以開始在我的項目中安全使用。我在說的是GCC
,主要是我很少需要Visual Studio。我顯然不希望在我的代碼中包含一個需要幾個月後重寫的功能。我是否應該從一開始就開始使用這些功能?因爲我們主要做的事情不是c++11 dependent
我們可以在老派的方法中做所有事情和每件事情。所以我們甚至應該在這個早期階段開始使用C++ 11功能?什麼是穩定的C++ 11功能可以安全使用
8
A
回答
8
C++ 11標準終於完成併發布了,所以不會有任何更改。實現仍然落後一點,可能會實現C++ 0x的稍舊版本,但在更新時可能不會注意到很多差異。
C++ 11並不完全向後兼容,所以您應該做的第一件事就是從C++ 11兼容性的角度開始開發。 GCC有一個警告標誌「-WC++ 0x-compat」來幫助解決這個問題。不兼容性非常小,但這應該會導致任何問題。
一個很大的不兼容性是libstdC++的ABI隨着向C++ 11的轉移而改變,因此您還必須確保可以處理該問題。
一旦你知道安全移動,就可以開始用C++ 11模式編譯。在編寫新代碼或更改舊代碼時,您可以逐漸採用任何C++ 11功能對您有用的東西。您可能還需要考慮檢查棄用功能的使用情況,例如舊的異常規格,並將其替換爲新的功能。
有很多新東西,所以看看標準,如果你可以得到它或一些文件在線。我發現我想直接使用的大部分真正有趣的東西都在圖書館裏。不幸的是,這似乎是當前實施仍然滯後最多的地方。
0
您可能需要訪問:
http://gcc.gnu.org/projects/cxx0x.html
這個鏈接給出了不同版本的GCC中的C++ 0x的支持。
我建議你現在使用C++ 11(只需在GCC命令行中添加-std = C++ 0x)。如果你很幸運,那麼代碼中沒有什麼會改變。即使您不使用任何C++ 11功能,您仍然可以從右值引用的性能改進和移動語義中受益。
相關問題
- 1. 什麼是Google Closure Library的最佳/更穩定的功能
- 2. 什麼C++頭可以用於這些特定的功能? Linux
- 3. 什麼可以使用MATLAB功能「Plot3D」?
- 4. 異步使用C++ 11 lambda,安全
- 5. 什麼是穩定匹配?
- 6. C++ 11:用於延遲初始化的安全雙重檢查鎖定。可能?
- 7. 什麼是C/C++中的「安全」和「不安全」代碼?
- 8. 定義_HAS_TRADITIONAL_STL以啓用STL功能是否安全?
- 9. 以下功能的用意是什麼?
- 10. 是可以安全使用的ServletContext#getMimeType()
- 11. 是可以安全使用的DLL從
- 12. C++ 11的std :: binomial_distribution不穩定
- 13. 是可以做一個安全的JS腳本或功能?
- 14. 什麼是使數據庫的用戶輸入安全的最佳功能?
- 15. Dart的主要安全功能是什麼?
- 16. 爲什麼使用before_action可以安全使用:authenticate_admin?
- 17. 爲什麼C標準包含許多不安全的功能,而這些功能是無用的?
- 18. 排序算法穩定或不穩定的原因是什麼?
- 19. 我可以信任node.js嗎?安全/穩定性問題
- 20. C#關鍵字固定/不安全的用途是什麼?
- 21. 什麼是C#項目設置「允許不安全代碼」的實際功能
- 22. 此功能是否安全?
- 23. 使用AtomicUsize時,const fns是一個不穩定的功能:: new
- 24. 什麼時候可以考慮使用危險的SetInnerHTML()安全?
- 25. 使用Webview/javascript的Android應用程序。什麼可能是安全問題?
- 26. 是否可以安全使用java.io.BufferedOutputStream?
- 27. 是可以安全使用訪問塊
- 28. 是否可以安全使用socket.io?
- 29. 使功能異常安全
- 30. 爲什麼這個算法穩定,我怎麼能使它不穩定?
您定位的是哪個GCC版本,此代碼在哪裏運行,您的目標系統使用了什麼......本頁詳細介紹GCC版本中的功能何時可用:http://gcc.gnu.org/projects/cxx0x。 html – birryree
我在Windows上使用MinGW I'vent檢查了該版本。和在Linux上我4.3.2然而我不知道下一次我會在哪裏放置工作。 –
是那些可以更改的功能?或者他們是穩定的? –