写点什么

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:444293
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

从零到一手写迷你版Vue

helloworld1024fd

JavaScript

redux原理是什么

xiaofeng

React

软件测试 | Github 必会高频基础命令与 IDE 的 Git 集成

测试人

GitHub 软件测试 自动化测试 测试开发

Vue响应式系统原理并实现一个双向绑定

yyds2026

Vue

假如问:你是怎样优化Vue项目的,该怎么回答

bb_xiaxia1998

Vue

前端二面常见手写面试题(必备)

helloworld1024fd

JavaScript

react的jsx语法是怎样解析的

夏天的味道123

React

vue为何不允许子组件修改父组件prop传值

达摩

Vue 数据流向

react-Suspense工作原理分析

夏天的味道123

React

react组件深度解读

xiaofeng

React

前端高频手写面试题总结

helloworld1024fd

JavaScript

React高级特性之Render Props

夏天的味道123

React

CartoonGAN论文复现:如何将图像动漫化

华为云开发者联盟

人工智能 华为云 12 月 PK 榜

什么是CodeArts

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜 软件开发生产线

前端vue面试题(持续更新中)

bb_xiaxia1998

Vue

浅谈字节码增强技术系列1-字节码增强概览

京东科技开发者

Java、 aop 字节码 字节码增强

云图说丨什么是应用身份管理服务OneAccess

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜

阿里云携手百奥利盟发布云上精准医疗与创新生物药数字化解决方案,助力行业数字化转型

云布道师

阿里云

Vue实战必会的几个技巧

yyds2026

Vue

es6中箭头函数解析

达摩

ES6 箭头函数

字节前端高频vue面试题及答案

bb_xiaxia1998

Vue

一步步实现React-Hooks核心原理

helloworld1024fd

JavaScript

link和import的区别

达摩

世界杯火爆进行,中科极光真激光电视解锁缤纷观赛季

硬科技星球

PAI-Diffusion模型来了!阿里云机器学习团队带您徜徉中文艺术海洋

阿里云大数据AI技术

机器学习 算法 图文生成 12 月 PK 榜

圆桌实录 | 为什么不约而同选择了大 Kernel

MegEngineBot

深度学习 开源 MegEngine 大 Kernel

kubernetes 1.26发布,这十项新特性值得关注!

BoCloud博云

Kubernetes 云原生

纯函数

达摩

js 纯函数

产品待办列表梳理(PBR)是什么?

ShineScrum

Scrum 敏捷 产品待办列表 Scrum event

使用全彩LED显示屏时的安全要点

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

react进阶用法完全指南

xiaofeng

React

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