大多數編譯器already support C++0x。你開始使用C++ 0x還是你在等待x的定義?我必須對代碼進行一些重構;我應該開始使用新功能嗎?您是否已經開始使用C++ 0x?
回答
C++ 0x不是一個完整的標準呢。 在國際公認的標準發佈之前,很可能會有很多修訂。 所以這一切都取決於,你在寫什麼代碼?如果是爲了工作分配,我會堅持使用常規的C++,等待標準被設置,並給編程社區調整所需的時間。不要重構你真正需要實現的代碼,它可能會給你帶來麻煩。
但是我認爲C++ 0x很棒,可以在全球接受0x時熟悉語法。
該計劃是在今年年底左右發佈的標準,預計不會有太多修改。他們已經得到了一份草案,並且已經修改了一兩次。今年晚些時候,他們將在ISO中進行投票,並且預計會在沒有任何問題的情況下通過。 – jalf 2009-06-02 15:26:16
我會延遲編寫生產代碼,直到'0x + y,其中y是他們將編譯器中的錯誤引入編譯器並將其帶入標準complience(無論標準如何)。
但爲了發展?我用它來玩,寫作project euler等,我也用它在演示文稿和新聞組上。
我會在Visual Studio FULLY支持它時開始使用它。現在VS10只支持一些功能。
我已經開始使用nullptr
,對於那些尚不支持它的編譯器(即大多數)使用#define nullptr 0
。
我們仍處於從VS6切換到VS 2005的過程中。我們可能不會使用C++ 0x編譯器進行新的工作,直到201X年底。
很少有支持某些東西的編譯器。實際上VS只支持TR1庫,gcc支持一些功能,如可變模板,右值,自動等等。英特爾編譯器有一些。
我大多開始使用可變參數模板,如:
#ifdef HAvE_VARIADIC
template<typename... Args>
void format(std::string,Args... args);
#else
template<typename T1>
void format(std::string,T1 p1);
template<typename T1,typename T2,>
void format(std::string,T1 p1,T2 p2);
...
template<typename T1,typename T2,...,typename T10>
void format(std::string,T1 p1,T2 p2,..., T10 p10);
#endif
我們已經打了的C++ 0x了很多,現在當GCC,儘快爲他們提供一些支持,我們將使用它們的功能。 原因很簡單 - 使用auto關鍵字可以節省大量輸入,使用右值引用可以提高性能,並且初始化程序列表和可變參數模板的輸入更少,代碼更易讀。
實際上,C++ 0x標準的主要目標也是我們的目標,因爲我們將利用這些功能爲競爭對手帶來優勢。這就是爲什麼我們要在不等待的情況下使用它們。當然,如果你需要多平臺兼容性,這一步是不可接受的。如果你不關心它,立即使用它,你只能贏。
是的我已經在使用C++ 0x併發布開源庫和代碼。我所有未來的C++開源項目都將用這種變體編寫。在使用可變參數模板參數和decltype/auto後,我無法返回!
- 1. 您是否已經嘗試過Spring Workflow?
- 2. Session已經開始
- 3. 即使您已經嵌入了PHP,是否會調用您的文件.html?
- 4. 檢查GLUT是否已經初始化?
- 5. 確定自開始以來是否已經過了x`小時
- 6. 檢查的嵌入式YouTube視頻是否已經開始
- 7. 如何判斷新月是否已經開始? PHP/MySQL的
- 8. PHP:如何知道輸出是否已經開始?
- 9. 識別一個程序是否已經開始
- 10. 如何知道一項活動是否已經開始
- 11. 測試最近啓動的活動是否已經開始
- 12. 檢查文件是否已經打開
- 13. 是否已經`setup.cfg`棄用?
- 14. 在Rails中,如果您已經檢查用戶是否已登錄,是否需要使用form_authenticity_token?
- 15. php會話來檢查您是否已經重定向用戶
- 16. C++構造函數代表是否已經在VS2008中可用?
- 17. 您是否應始終使用ExecutorService而不是開始自己的線程?
- 18. C++ *運算符是否「已經超載?」
- 19. 在C++ 0x中統一初始化,何時使用()而不是{}?
- 20. 在C++ 0x中完美轉發是否使reference_wrapper不被使用?
- 21. std :: streams是否已經可移動?
- 22. 我已經開始使用Stage3D。 Stage3D中哪些類可用?
- 23. 找出應用是否已經初始化?
- 24. 「主題已經開始」恢復活動
- 25. 取消已經開始的iOS
- 26. 開始即已經啓動並stoppped
- 27. 我aplication已經開始活動
- 28. Symfony2會話已經開始 - 忽略session_start()
- 29. 泊塢窗:當它已經開始
- 30. 笨 - 一個會議已經開始了 - ()
不,還沒有完全支持C++ 0x的編譯器。有幾個編譯器實現了C++ 0x特性的部分SUBSET,但幾乎不是全部。此外,標準還沒有完成,可能會改變。 – 2009-06-02 15:17:00
他們沒有時間來重新命名它C++ 1x。 – 2009-06-02 16:27:05
如果延遲的話,它將成爲C++ 0a – 2009-06-02 16:46:10