写点什么

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

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

关注

评论

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

VSCode技术揭秘(一)

龙之幽谷

vscode 开发工具

软件测试 | 测试开发 | 利用 rpush 和 blpop 实现 Redis 消息队列

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 自定义form表单验证

测吧(北京)科技有限公司

测试

DophineSheduler上下游任务之间动态传参案例及易错点总结

白鲸开源

大数据 DolphinScheduler 任务调度 大数据 开源 参数传递

软件测试 | 测试开发 | 使用 ReportLab 绘制 PDF

测吧(北京)科技有限公司

测试

MobSDK 客户端API

MobTech袤博科技

API an'droid

新书上市 | 连接组,向人类科学的最终前沿进军

图灵社区

神经网络 大脑 脑科学

企业级npm仓库搭建

龙之幽谷

前端 nexus NPM仓库

开发者有话说 | 一位工作十余年工程师的成长之路

矜辰所致

个人成长 经历分享 9月月更 成长感悟

Eclipse Theia技术揭秘——脚手架源码分析

龙之幽谷

开发工具

架构实战营模块1作业

乖乖IvyShine

企业级前端组件建设

龙之幽谷

前端 组件库

JS基础——JS数据类型

龙之幽谷

前端 js

leetcode 572. Subtree of Another Tree 另一棵树的子树 (简单)

okokabcd

LeetCode 数据结构与算法

Eclipse Theia技术揭秘——初识Theia

龙之幽谷

开发工具

Eclipse Theia技术揭秘——构建桌面IDE

龙之幽谷

开发工具

Eclipse Theia技术揭秘——自定义布局

龙之幽谷

开发工具

软件测试 | 测试开发 | Spring boot 之 RestTemplate访问

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Golang死信队列的使用

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | JVM内存溢出问题排查

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | web自动化测试-执行 JavaScript 脚本

测吧(北京)科技有限公司

测试

如何建设前端物料平台?

龙之幽谷

前端 组件化

运维学网络安全还是云计算好?哪个更有前景?

行云管家

云计算 运维 网络安全

软件测试 | 测试开发 | 从几个开源项目浅谈IOS视频流输出方案

测吧(北京)科技有限公司

测试

新书上市 | 连接组,向人类科学的最终前沿进军

图灵教育

神经网络 大脑 脑科学

软件测试 | 测试开发 | 浅谈Shiro框架在Spring Boot中的认证应用

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 如何提取 IOS Document_apis

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 如何提取 IOS Runtime Headers

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Mysql 之执行计划

测吧(北京)科技有限公司

测试

刘奇:能否掌控复杂性,决定着分布式数据库的生死存亡

PingCAP

#TiDB

认识 ESP-IDF-v4.3+工程结构(ESP32-C3应用调整示例)

矜辰所致

ESP32-C3 9月月更 ESP-IDF

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