截至2012年5月23日,我希望开始使用C++11编码,并在所有项目中使用它,因为我看到了许多我非常喜欢的新功能。但是,我拥有的编译器都不支持任何来自C++11的内容。有人可以推荐一些书籍和编译器吗?在我的项目中使用C++11是个好主意吗?Qt Creator 2.5支持C++11吗?
选择编译器将取决于您正在开发的平台。
Gcc 4.7和Clang似乎支持最多的C++11特性,但我认为它们在Windows上的支持主要限于mingw,并且我相信即使在那里,clang的支持也很有限。Intel C++没有像gcc或clang那样多的C++11支持,但比VC++更多,并且支持Windows。 VC++ 11是一个非常好的编译器,对Windows的支持也很好,但不幸的是,就C++11功能而言,它今天落后了,缺少可变参数模板、初始化列表和统一初始化、用户定义的字面量、constexpr、新字符串字面量、默认/删除函数、委托/继承构造函数、模板类型别名等。
如果目标是Linux,则gcc显然对其有很好的支持,而我认为clang并不太落后。如果针对BSD或OS X,则Clang是明显的选择。
如果目标是多个平台,则必须限制自己使用所有编译器都支持的C++11子集。
C++11编译器支持:http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport
C++11图书刚刚开始出版。有一本新版本的《C++标准库:教程与参考》。C++ Concurrency In Action相当全面地涵盖了新的内存模型、多线程和原子操作等内容。据我所知,到目前为止,这些就是唯一的几本。然而,有许多在线文章和资源可用,应该足以入门:
如果缺乏支持不会阻止您使用C++11,那么这是一个很好的想法。
Qt Creator 2.5对于C++11有一定的支持:http://labs.qt.nokia.com/2012/03/15/qt-creator-2-5-beta/