GCC4.8发布,完成向C++的迁移
来源:互联网 发布:物理化学就业知乎 编辑:程序博客网 时间:2024/05/15 18:39
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++
- GCC4.8发布,完成向C++的迁移
- 一步完成 MySQL 向 Redis 迁移
- 一步完成 MySQL 向 Redis 迁移
- 一步完成 MySQL 向 Redis 迁移
- 一步完成 MySQL 向 Redis 迁移
- Ubuntu14下gcc4.8和gcc4.7之间的切换
- GCC4.9 发布
- SQL SERVER 向ORACLE 8迁移的技术实现方案
- 学习向 Solaris 操作系统迁移 C 和 C++ 应用程序的有关问题与技巧
- powerdesinger pdm 完成数据库的迁移
- Kettle完成不同数据库的表迁移
- centos6.4安装GCC4.8 C++11
- weblogic 向Tomcat迁移的问题
- Tomcat 向 Weblogic 迁移的问题记录
- Tomcat 向 Weblogic 迁移的问题记录
- JUnit 3.8 向 4 的迁移
- 向Visual Studio 2010迁移的电子书
- SQL Server向Oracle迁移的解决方案
- Linux写时拷贝技术(copy-on-write)
- jQuery插件开发全解析
- 用js实现的 带省略号的 分页 php
- Linux 常用命令(查看版本、修改系统时间)
- 流媒体服务协议
- GCC4.8发布,完成向C++的迁移
- 温故而知新
- jquery和js如何判断一个对象是否存在
- 【转贴】游戏中如何读取压缩包文件
- SQL面试题之一有关连接、查询的题
- CString和CStringA之间的转换
- eclipse上使用JUnit框架进行单元测试
- crontab调度
- Android平台根目录文件