[英]Have You Started Using C++0x?
C ++ 0x尚未完成標准。 在國際公認的標准發布之前,很可能會有很多修改。 所以這完全取決於你在為什么編寫代碼? 如果它是一個工作任務,我會堅持使用常規C ++,等待標准設置,並為編程社區提供調整所需的時間。 不要重構你真正需要實現的代碼,它可能會給你帶來麻煩。
然而,我認為C ++ 0x非常適合使用,並且當全局接受0x時熟悉語法也不會有什么壞處。
我已經開始使用nullptr
,對那些不支持它的編譯器(即大多數)使用#define nullptr 0
。
我會推遲編寫生產代碼,直到'0x + y,其中y是他們處理編譯器中的錯誤並將其帶入標准complience(無論標准可能是什么)。
但對於發展? 我用它來玩,寫作項目euler等。我也在演示文稿和新聞組中使用它。
很少有編譯器支持某些東西。 實際上VS只支持TR1庫,gcc支持variadic templatres,rvalue,auto等功能。 英特爾編譯器有一些。
我大多開始使用變量模板,如:
#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關鍵字可以節省大量的輸入,使用rvalue引用可以獲得性能提升,初始化程序列表和可變參數模板可以減少輸入和更易讀的代碼。
實際上,c ++ 0x標准的主要目標也是我們的目標,因為我們將利用這些功能為競爭對手帶來優勢。 這就是為什么我們要在不等待的情況下使用它們。 當然,如果您需要多平台兼容性,則此步驟是不可接受的。 如果你不關心它,立即使用它,你只能贏。
是的我已經在使用C ++ 0x並發布了開源庫和代碼。 我將來的所有C ++開源項目都將使用此變體編寫。 使用variadic模板參數和decltype / auto之后我就不能回去了!
當Visual Studio FULLY支持它時,我將開始使用它。 目前VS10僅支持一些功能。
我們仍然在從VS6切換到VS 2005.在201x年末之前,我們可能不會專門使用C ++ 0x編譯器來完成新工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.