写点什么

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

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

关注

评论

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

关于元宇宙热的冷思考

CECBC

科学防控 云天励飞打造抗疫全场景方案

科技新消息

洞见科技荣获隐私计算新势力奖!创始人姚明出席华夏时报「2022智能数据论坛」

洞见科技

隐私计算 数据智能

大数据培训程序员面试屡次碰壁怎么办

@零度

面试 大数据开发

国内20家优秀一线低代码平台推荐,经典收藏

J2PaaS低代码平台

低代码 开发工具 低代码平台 J2PaaS低代码

深圳“摘星”!但常态化疫情防控工作不可松

科技新消息

书单 | 一季度重磅级上榜新书!

博文视点Broadview

墨水屏的“硬伤”与福气

脑极体

什么是元宇宙?为何要关注它?

CECBC

Linux之last命令

入门小站

Linux

Kubernetes官方java客户端之五:proto基本操作

程序员欣宸

4月月更

云天励飞全场景方案助力科技防疫

科技新消息

一起看看 Go 1.18 新特性之多模块工作区模式

宇宙之一粟

Go 语言 4月月更

深入理解 Page Cache

mazhen

Linux Performance Linux Kenel PageCache

【课程汇总】OpenHarmony全场景Demo数字管家系列课(附链接)

OpenHarmony开发者

OpenHarmony 数字管家

在线JSON美化格式化工具

入门小站

工具

程序员不好招了吗,web前端培训应该怎么学习

@零度

前端开发

使用FFMPEG自动剪辑视频

十三

在线QuartzCron定时任务表达式在线生成

入门小站

工具

每个计算机人才都应该知道的IP地址分类

喀拉峻

计算机基础 IP

Vue DevTools 使用指南 - 如何安装和使用 Vue DevTools 调试 Vue 组件

蒋川

Vue vue devtools

VMware Workstation Pro虚拟机网络设置

DS小龙哥

4月月更

关于防御性编程,你应该知道的事

架构精进之路

编程 4月月更

活动预告 | OpenMLDB Meetup No.2

第四范式开发者社区

人工智能 机器学习 数据库 Meetup OpenMLDB

React代码规范

Teobler

React 代码规范 编码规范 react规范

如何保证同事的代码不会腐烂?一文带你了解 阿里巴巴 COLA 架构

Zhendong

Java 架构 4月月更

实战异地多活架构之王者荣耀商城

晨亮

「架构实战营」

【PIMF】OpenHarmony啃论文成长计划——浅谈中间件

离北况归

中间件 OpenHarmony 啃论文

私有链还有未来吗?

CECBC

【愚公系列】2022年04月 MinIO文件存储服务器-window11下的安装

愚公搬代码

4月月更

TDengine 应用实录:存储缩减超过 60%,HBase 等集群指数级下线

TDengine

数据库 tdengine 物联网

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