写点什么

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

  • 2013-03-29
  • 本文字数:846 字

    阅读完需:约 3 分钟

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

新的编译器特性

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

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

特定于语言的改进

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

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

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

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

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

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

2013-03-29 04:444118
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 130.0 次阅读, 收获喜欢 34 次。

关注

评论

发布
暂无评论
发现更多内容

眼见为实:关于微服务熔断这几个知识点,你可能理解错了

KINDLING

Java 微服务 熔断 SpringCloud ebpf

当Kubernetes遇见Macvlan——实现CNI路由插件

陆云

Kubernetes 集群

【jquery Ajax 练习】图书管理

坚毅的小解同志

ajax 11月月更

数据报告 | 新冠疫情对美国民众消费行为的影响

前嗅大数据

疫情 数据分析 爬虫 数据采集 消费

【Node.js】npm与包【万字教学~超超超详细】

坚毅的小解同志

node.js 11月月更

云原生技术中台 CNStack2.0 正式发布

阿里巴巴云原生

阿里云 云原生 CNStack 云原生中台

eBPF程序摄像头——力争解决可观测性领域未来最有价值且最有挑战的难题

KINDLING

Java Linux 监控 可观测 #ebpf

【jquery Ajax】接口的学习与Postcode插件的使用

坚毅的小解同志

ajax 11月月更

大数据培训和自学怎么学习

小谷哥

教育行业数据可视化应用方案与实践

葡萄城技术团队

前端 数据可视化 智慧医疗 智慧工程

【jquery Ajax 】form表单教学+评论案例

坚毅的小解同志

11月月更

【区块链Go】基础语法

坚毅的小解同志

#go 11月月更

曳影1520已成功运行Anolis OS!详聊平头哥在RISC-V软件生态的探索和实践 | 龙蜥技术

OpenAnolis小助手

操作系统 芯片 risc-v 龙蜥峰会 平头哥

【Node.js】模块的加载机制

坚毅的小解同志

node.js 11月月更

ZETA精彩亮相2022 IOTE展 以全栈式物联生态赋能产业数智化转型

ZETA开发者

物联网 ZETA 物联网技术 LPWAN 技术融合

Meta force2.0佛萨奇矩阵公排系统开发合约部署搭建

开发微hkkf5566

大数据的5V特征分别是什么?

好程序员IT教育

大数据 V5

前端培训和自学的哪种方式更合适?

小谷哥

大数据培训学习后没有面试机会怎么办

小谷哥

【jquery Ajax】基础概念与使用教学

坚毅的小解同志

ajax 11月月更

盘点 | 云原生峰会重磅发布

阿里巴巴云原生

阿里云 云原生

【Node.js】模块化学习

坚毅的小解同志

node.js 11月月更

眼见为实:被误导的Tomcat的工作原理

KINDLING

Java tomcat 多线程 ebpf

和鲸科技入选2022年度数字化创新服务商丨Digital 36 调研发布

ModelWhale

云计算 大数据 数字化转型 数据智能 企业服务

眼见为实:ForkJoin的“分而治之”,竟然有隐藏的坑?

KINDLING

Java Linux 多线程 forkjoin ebpf

还不会正则表达式? 放心 我会出手(万字教学)

坚毅的小解同志

正则表达式 11月月更

无序和混乱终结者,极狐GitLab Workflow 到底有什么魔力?

极狐GitLab

DevOps Code Review CI/CD workflow 极狐GitLab

【jquery Ajax 】art-template模板引擎案例——新闻列表

坚毅的小解同志

ajax 11月月更

【jquery Ajax 】art-template模板引擎的概念与使用

坚毅的小解同志

jquery ajax 11月月更

干货|无源元件之——电阻器基础知识(超全)

元器件秋姐

OH应用程序集成AGC认证服务实现邮箱登录

白晓明

OpenHarmony AGC认证服务

GCC 4.8发布,完成向C++的迁移_Linux_Jeff Martin_InfoQ精选文章