-std=gnu++11 导致的问题

发布时间:2017-3-26 15:27:24 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"-std=gnu++11 导致的问题",主要涉及到-std=gnu++11 导致的问题方面的内容,对于-std=gnu++11 导致的问题感兴趣的同学可以参考一下。

今天打算在自己新的C++工程中启用C++11, 到时候了,该全面升级了。编译器是GCC4.8.1, 查看官方文档:http://gcc.gnu.org/onlinedocs/gcc-4.8.1/libstdc++/manual/manual/using.html#manual.intro.using.flags看到可以使用的选项是-std=gnu++11,结果编译报错,都是:/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits:268:39: error: use of undeclared identifier '__float128' struct __is_floating_point_helper<__float128>打开type_traits文件,找到268行左右的代码:#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) template<> struct __is_floating_point_helper<__float128> : public true_type { }; #endif根据Google的结果,有个解决方案:一是换用--std=c++11,问题解决。二是使用__STRCT_ANSI__编译选项中添加了-D__STRICT_ANSI__后,果然问题解决。另外,安装了clang3.2后,由于兼容gcc所有参数,编译时只需要将c++命令换成clang++即可。都知道clang编译快,报错友好。等到发布的时候,再换成gcc,获得更快的性能。还是不错的用法。

上一篇:张乐博士的最大熵模型
下一篇:hdu 2136(Largest prime factor)

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款