GCC二进制文字和C ++ 14组的人之间的区别是什么?(Difference between GC

2019-09-01 17:22发布

C ++ 14似乎将和编译器已经在努力实现这个新修订的核心功能。 我有一个看看这些核心功能GCC支持和发现了一些关于二进制文字部分:GCC实现了他们,但似乎让GNU二进制文字和C ++ 14个二进制文字之间的差异。 以下是双方各自的参考:

  • GNU二进制文字
  • C ++ 1Y二进制文字

我试图找到他们两个人之间的一些差异,因为GCC似乎赚取差价,但找不到任何东西。 是否有任何的你知道更多关于可能的不兼容?

Answer 1:

从提交DIFF这在GCC 4.9引入了支持,唯一的区别是,GCC现在接受二进制文字作为C ++ 1Y的语言特性,并且不会发出警告,他们是gcc的一个扩展,如果C ++ 1Y支持指定。 还有就是要实际执行没有变化。

先前:

warning : binary constants are a GCC extension

现在,除非-std=c++1y被指定:

warning : binary constants are a C..1y feature or GCC extension


Answer 2:

我猜测,所不同的是,因为一个是一个扩展,那么人们就不会太倾向于使用它,而另一个是符合标准和访问,无需打开扩展。 这是一个形式。



Answer 3:

你点到第一个文件是GNU的二进制文字的作为扩展的C语言(即,它是C的非标准功能和文档定义GCC如何实现的扩展语言)。

你点到第二个文件是添加二进制文字的C ++ 11语言的提议,但据我所知,还没有被接受或者(*),这意味着它不是标准C ++的一部分或者,仍是由海湾合作委员会提供的语言扩展。

至于我可以看到这个功能将是不可移植的跨编译器,但你可以通过使用用户定义的字面定义在C ++ 11你自己的二进制文字的实现。

(*)S /不接受/我无法找到N3485“工作草案,标准C ++编程语言”,以二进制文字的任何引用,但也可能是接受了C的一个标准++功能。



文章来源: Difference between GCC binary literals and C++14 ones?