是否有适用于Windows的C ++ 11编译器支持新的C ++ 11类型特征,如is_nothrow_move_constructible
?
我试图编写一个支持它的容器,却发现我的编译器都没有(VC ++ 2010,TDM MinGW32 GCC 4.6)支持它......
答案 0 :(得分:3)
对于mingw,我建议STL's distro here(gcc 4.7.1)。它还带有1.50的增益。
还有mingw-w64(原版mingw的一个分支),我推荐rubenvb's personal builds here。如果您需要32位版本,请转到Toolchains targetting Win32
。他还有个人构建的clang(Windows上的clang支持仍然非常错误.x64构建将报告链接器错误,因此只能用于更好的诊断等)。
STL的发行版非常好,但是我发现mingw-w64能够更好地支持win32 api(我遇到了原始mingw的无数问题)和c ++ 11头文件,例如{{1}在原始的mingw中不支持。 mingw-w64更加活跃(可以创建32位和64位二进制文件),并且包括对windows vista及更高版本的新功能的支持。
答案 1 :(得分:2)
Visual Studio C ++ 2012 Beta根据参考资料支持许多C ++ 11类型特征。看看the Visual Studio C++ 2012 Documentation但是,我找不到is_nothrow_move_constructible
在那里记录。它似乎得到了支持。
答案 2 :(得分:1)
GCC 4.7确实支持is_nothrow_move_constructible你可以通过安装MinGW Distro在Windows上试用它。
答案 3 :(得分:0)
不是答案,但我刚从查看GCC 4.7的type_traits
标题的源代码中学到了一些东西:
首先,你甚至不需要 is_nothrow_xyz
!
noexcept
运算符会告诉您是否抛出异常
因此,对于这些特定的类型特征,您可以使用它。
(或者至少在理论上。你的编译器是否实现它是另一回事。)