GCC中C ++ 17支持的状态是什么?

时间:2015-07-05 12:12:34

标签: c++ gcc clang++

Clang有nice page描述项目状态w.r.t. C ++ 1z / C ++ 17功能支持(和C ++ 11和C ++ 14,它是同一页面)。

g ++有a page regarding C++14 features,但我找不到关于C ++ 17 / C ++ 1z的任何内容。这是否正在进行,但只是没有出现在网络上?对于5.0版本?

4 个答案:

答案 0 :(得分:30)

截至今天,跟踪了gcc的C ++ 1z语言支持:https://gcc.gnu.org/projects/cxx1z.html。有关libstdc ++的C ++ 1z状态,请参阅https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.201z

答案 1 :(得分:7)

已经有一些支持;以下两个摘要面向Clang的列表:

支持(截至2015年7月5日):

  • auto支持函数参数since 4.9。此功能目前被视为一个扩展,但包含在概念提案中,并称为"泛型函数"。
  • 默认情况下会忽略三字符since 5.1.0
  • typename了解模板模板参数since 5.1.0
  • 直接列表初始化since 5.1.0
  • 的新扣除规则
  • static_assert没有消息in HEAD
  • u8字符文字in HEAD
  • 名称空间或枚举数in HEAD
  • 的属性

不受支持(截至2015年7月5日;指向有效示例用法的链接):

对于libstdc ++中库提案的实施状态,the corresponding manual有一个列表。

答案 2 :(得分:5)

更新后的最终总结:

  • GCC 8.x(及更高版本)完全支持所有C ++ 17。
  • GCC 7.x支持所有C ++ 17,但不包括类模板参数推导。
  • GCC 6.x(及更早版本)对C ++ 17功能的支持很少或根本不支持。

感谢@JanVanDijk提供link to the full feature table

答案 3 :(得分:4)

cppreference.com上还有一个很好的表格,列出了几个编译器支持的功能。

http://en.cppreference.com/w/cpp/compiler_support