GCC 中 C++17 支持的状态如何?
What's the status of C++17 support in GCC?
Clang有一个很好的页面,描述了关于C++1z/C++17特性支持的项目状态(以及C++11和C++14,这是同一个页面(。
g++有一个关于C++14功能的页面,但我找不到任何关于C++17/C++1z的内容。这是正在进行中,但只是没有出现在网络上吗?对于版本5.0?
截至目前,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.
更新的最终答案:
- GCC 8.x(及更高版本(完全支持所有C++17
- 除了类模板参数推导之外,GCC 7.x支持所有C++17
- GCC 6.x(及更早版本(很少或根本不支持C++17特性
感谢@JanVanDijk提供完整功能表的链接。
已经有了一些支持;以下两个摘要针对Clang的列表:
支持(截至2015年7月5日(:
- 从4.9开始支持函数参数的
auto
。该功能目前被认为是一种扩展,但已包含在概念提案中,并被称为"通用功能"> - 自5.1.0起,默认情况下将忽略三角图
- 自5.1.0起模板模板参数的
typename
- 自5.1.0以来直接列表初始化的新演绎规则
- HEAD中没有消息的
static_assert
- HEAD中的
u8
字符文字 - HEAD中命名空间或枚举器的属性
不支持(截至2015年7月5日;带有有效示例用法的链接(:
- 折叠表达式
- 嵌套的命名空间定义
- 所有非类型模板参数的常量求值
关于libstdc++中库建议的实现状态,相应的手册有一个列表。
cppreference.com上还有一个不错的表,列出了几个编译器支持的功能。
http://en.cppreference.com/w/cpp/compiler_support
相关文章:
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如何在c++17中制作一个模板包装器/装饰器
- 枚举环境变量的惯用C++14/C++17方法
- gcc和c++17的过载解析失败
- 数据成员SFINAE的C++17测试:gcc vs clang
- 我可以将一个用clang c++11编译的对象与另一个用c++17编译的对象链接起来吗
- C++17中的并行执行策略
- C++17中函数模板中的静态数组初始化(MSVC 2019)
- Constexpr替代了新的放置方式,可以让内存中的对象保持未初始化状态
- 并行用于C++17中数组索引范围内的循环
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- c++17文件系统::recursive_directory迭代器()在mac上没有给出这样的目录,但在windows上
- OSX MetalKit CVMetalTextureCacheCreateTextureFromImage失败,状态:
- std::future_error:无关联状态
- 在C++17中,引用const字符串的语义应该是什么
- 为什么这种直接初始化有效?(C++17)
- C++17 - 使用自定义分配器的节点提取/重新插入 - 适用于 clang++/libc++,但不适用于 libstd
- C++17 和当前状态的十进制浮点数
- GCC中更详细的C 17状态
- GCC 中 C++17 支持的状态如何?