C++ 您是否已经开始使用C++;0x?

C++ 您是否已经开始使用C++;0x?,c++,c++11,C++,C++11,大多数编译器。您是否已经开始使用C++0x或正在等待x的定义?我必须对我的代码进行重构;我应该开始使用新功能吗?我会推迟编写生产代码,直到“0x+y”,在这里,y是指他们从编译器中解决bug并将其纳入标准兼容性(无论标准是什么) 但是为了发展?我用它玩游戏、写作等。我也在演示文稿和新闻组中使用它。C++0x还不是一个完整的标准。 在国际公认的标准发布之前,可能会有很多修订。 所以这取决于你写代码的目的是什么?如果是为了工作任务,我会坚持使用常规C++,等待标准的设置,并给程序社区提供调整的时间。

大多数编译器。您是否已经开始使用C++0x或正在等待x的定义?我必须对我的代码进行重构;我应该开始使用新功能吗?

我会推迟编写生产代码,直到“0x+y”,在这里,y是指他们从编译器中解决bug并将其纳入标准兼容性(无论标准是什么)


但是为了发展?我用它玩游戏、写作等。我也在演示文稿和新闻组中使用它。

C++0x还不是一个完整的标准。 在国际公认的标准发布之前,可能会有很多修订。 所以这取决于你写代码的目的是什么?如果是为了工作任务,我会坚持使用常规C++,等待标准的设置,并给程序社区提供调整的时间。不要重构你真正需要实现的代码,它可能会给你带来很多麻烦


然而,我认为C++0x很好玩,而且当0x被全球接受时,熟悉语法也无妨。

当Visual Studio完全支持它时,我将开始使用它。目前VS10只支持一些功能。

我已经开始使用
nullptr
,为那些还不支持它的编译器(即大多数编译器)使用
#define nullptr 0

我们仍在从VS6切换到VS2005的过程中。在201x年底之前,我们可能不会专门使用C++0x编译器进行新的工作。

从您提供的链接来看,您实际上的意思是,不是真正的C++0x。是的,我在使用大多数新的TR1库已经有一段时间了,因为其中很多都是以前的库


我只能鼓励大家也使用它们。

支持某些功能的编译器很少。实际上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
#如果定义为可变
模板
void格式(std::string,Args…Args);
#否则
模板
void格式(std::string,T1-p1);
模板
void格式(std::string、T1 p1、T2 p2);
...
模板
void格式(std::string、T1 p1、T2 p2、…、T10 p10);
#恩迪夫

我们经常使用c++0x,现在当gcc支持某些功能时,我们将在这些功能可用时立即使用它们。 原因很简单-使用auto关键字可以节省大量键入,使用右值引用可以提高性能,使用初始值设定项列表和可变模板可以减少键入,提高代码的可读性


实际上,c++0x标准的主要目标也是我们的目标,因为我们将在这些特性上对竞争对手具有优势。这就是为什么我们不用等待就可以使用它们。当然,如果您需要多平台兼容性,此步骤是不可接受的。如果你不在乎它,立即使用它,你只能赢。

是的,我已经在使用C++0x并发布开源库和代码。所有我未来的C++开源项目都将用这个变体编写。使用可变模板参数和decltype/auto后,我无法返回

不,还没有任何编译器完全支持C++0x。一些编译器已经实现了C++0x特性的部分子集,但并不是全部。此外,该标准甚至还没有完成,可能会发生变化。在他们不得不将其重命名为C++1x之前,他们已经没有时间了。如果推迟,它将是C++0a。该标准计划在今年年底左右发布,预计不会有太多修订。他们已经起草了一份草案,并且修改了一两次。今年晚些时候,他们将在国际标准化组织(ISO)上投票表决,预计它将毫无问题地通过。我也是这样想的。但是,等待完全实现可能需要很长时间(我的意见是,这将需要几年时间,可能会有一些很少使用的特性,这些特性永远不会在某些编译器中实现!)。因此,我将使用所有相关编译器中可用的所有功能。(遗憾的是,我们不得不使用GCC 3.4.5进行嵌入式开发:-()