首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >g++版本4.0.0.8和4.3.2有什么区别?

g++版本4.0.0.8和4.3.2有什么区别?
EN

Stack Overflow用户
提问于 2010-12-30 22:23:15
回答 3查看 5.5K关注 0票数 6

g++ 4.0.0.8和g++ 4.3.2有什么区别?这两个是我在各种编程竞赛中见过的最常用的C++编译器。

我试着用谷歌搜索了一下,但什么也没找到。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-31 02:27:39

考虑到你对两者之间的C++变化感兴趣,这真的不是一个“巨大的列表”。

4.0.0.8只是4.0的补丁版本,其发行说明在这里:http://gcc.gnu.org/gcc-4.0/changes.html

4.3.2是4.3的补丁修订版,其发行说明在此处:http://gcc.gnu.org/gcc-4.3/changes.html

如果你看一下它们之间的区别,我认为下面的列表涵盖了你真正关心的GCC 4.0和4.3之间最重要的区别。

GCC 4.3.2具有(包括对 ):的更改

(这是一个链接)

  • long long现在在C++中得到了正式支持(尽管它是在较早的GCC中提供的一个扩展),但现在支持尖括号,就像你在std::vector<std::vector<int>>中看到的那样(请注意,在declaration).
  • experimental support for Variadic Template Arguments
  • Static assertions
  • and some others

的末尾,两个>之间缺少空格

更多TR1库支持

  • <regex> (gcc 4.3)、<random> (gcc 4.2)和<complex> (gcc 4.2)

C++可见性处理进行了全面检查。(GCC 4.2)

受限可见性从类传播到成员,从函数传播到局部静态,从模板和模板参数传播到实例化,除非后者显式声明了可见性。

类的可见性属性必须在class-key和name之间,而不是在右大括号之后。

现在,只声明类型的枚举和复杂类型说明符允许使用属性。

匿名命名空间的成员现在是特定翻译单元的本地成员,以及使用它们的任何其他声明,尽管它们仍然被视为语言语义的外部链接。

是一个没有文档记录的模板扩展,在GCC 4.2中被删除(4.1中弃用)

,允许带有默认参数的模板绑定到带有较少参数的模板模板参数的(未记录的)扩展已被删除。例如:

代码语言:javascript
复制
template <template <typename> class C>
void f(C<double>) {}

template <typename T, typename U = int>
struct S {};

template void f(S<double>);   

G++不再接受

。此代码不被接受的原因是,S是一个具有两个参数的模板;因此,它不能绑定到只有一个参数的C。

此外,请查看 ,其中包含一些重要的内容,例如:

已删除向后兼容/不推荐使用的标头。

大多数情况下,这意味着一些标准的头文件被删除了,比如<iostream.h> (使用标准的<iostream>)、<hash_map.h> (使用<tr1/unordered_map>)、<hashtable.h> (根据需要使用<tr1/unordered_map><tr1/unordered_set> )等等。

更严格地执行标准

例如,main的双参数形式上的签名必须是正确的。

无重复的函数参数名称

代码语言:javascript
复制
void func(int x, int x); // now an error

已经有了各种各样的错误修复,以及我认为不会真正影响你编写竞争代码的变化(比如删除/添加新的编译器标志),以及像<?>?操作符这样的东西的删除(使用过这些吗?)。

总而言之,如果你不得不为两个编译器都写代码,我认为两者之间的差异不会给你带来太多痛苦。

票数 13
EN

Stack Overflow用户

发布于 2010-12-30 22:47:51

您想知道两个不同版本的g++之间的区别吗?它是GNU C++编译器的两个常见版本。不同的Linux版本可能附带不同版本的g++。就像我现在的CentOS 5.5一样,它有g++ 4.1.2。

有关功能的详细信息,请查看评论中的链接。

票数 0
EN

Stack Overflow用户

发布于 2010-12-31 02:04:45

由于4.3.2版本比4.0.0.8版本更新,因此更符合标准。有关详细信息,请查看文档和版本更改

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4563340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档