GCC 4.8发布,完成向C++的迁移

GNU编译器集合(GCC)的最新版本发布,这标志着向C++的迁移已经完成。这一过程持续了多年,GCC团队指出,为了有一个可维护的代码基来吸引并留住新的项目成员,这种迁移是必要的。之所以选择C++,部分原因是它是标准化的语言,而且 \"支持更干净的代码,更容易编写并保证清晰的接口……尽管这并非灵丹妙药,但相对于基于C的遗留代码,的确是种改进”。对大部分开发者来说,最终结果不过是,如果有兴趣从源代码构建GCC 4.8,则必须使用支持C++ 2003的编译器。该版本设计得更为高效,更容易更新,普通用户可以直接受益。

\u0026#xD;\n

新的编译器特性

\u0026#xD;\n

首先介绍一下通用的编译器改进,该版本“引入了一个新的通用优化层,既满足了快速编译和极佳调试体验的需要,又保证了合理的运行时性能”。此外,4.8包含了用于探测内存错误的AddressSanitizer,以及支持插入指令检查数据竞争的ThreadSanitizer。(ThreadSanitizer目前只能用于x86-64 GNU/Linux。)

\u0026#xD;\n

值得注意的是,该版本还支持64位ARM(AArch64)和32位ARMv8等架构。

\u0026#xD;\n

特定于语言的改进

\u0026#xD;\n

完成了向C++的迁移,这并不是唯一值得赞赏的成绩,编译器在其他一些方面还有不少改进。GCC目前初步在多种架构上实现了针对GNU/Linux和Solaris等平台的Go 1.1支持。如果使用Fortran和C进行开发的话,也有一些更新值得研究一番。

\u0026#xD;\n

C++用户会看到如下对C++11支持的改进

\u0026#xD;\n
  • thread_local关键字\u0026#xD;\n
  • attribute语法\u0026#xD;\n
  • 对齐说明符(alignment specifier)\u0026#xD;\n
  • 继承构造函数\u0026#xD;\n
  • forward_list满足了能够感知分配器(allocator-aware)的容器这一需求\u0026#xD;\n

Clang 3.2相比,GCC 4.8对C++11的支持也非常不错,而且都领先于最新的Visual C++ Compiler November 2012 CTP。新增了编译选项-std=c++1y,支持对下一个主要标准(预计大约在2017年)提出的特性进行实验,这意味着应对未来C++变化的计划已经开始。

\u0026#xD;\n

C++运行时标准库(libstdc++)对C++11有了更大的支持,改进了随机数生成器(包括新的X86处理器上的硬件支持),并加入了新的随机数分布。

\u0026#xD;\n

查看英文原文GCC 4.8 Completes Move to C++

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:博客之星2021 设计师:Hiro_C 返回首页
评论

打赏作者

test

谢谢

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值