是 GCC 6.2 或更高版本中的 C++20 实验范围
Is the C++20 Experimental Ranges in GCC 6.2 or above?
我想尝试使用 C++20 实验范围库。我试图四处搜索,看看它是否在GNU编译器集合(GCC(6.2或更高版本中实现,但没有找到任何信息。范围库是否在 GCC 中实现?
到目前为止,
我还没有找到任何官方文档说明GCC支持实验性Ranges,所以答案似乎是否定的。
另外,Eric Niebler 有一个 Ranges 的"参考"实现,你可以在 github 上找到它。
已知该代码适用于以下编译器:
- 叮当 3.6.2(或更高版本(
- GCC 4.9.4(或更高版本((C++14 支持需要 GCC 5.2;C++14 "扩展 constexpr" 支持在 6.1 之前很差。
- "Clang with Microsoft CodeGen" (Clang/C2( VS2015 Update 3(或更高版本(
Ranges库与GCC是
分开的,尽管GCC是目前唯一支持Ranges的编译器。Eric Niebler 的 range-v3 库非常有用,但它与 Range TS 有很大不同。实现Ranges TS的库称为cmcstl2,主要由Casey Carter编写,Eric Niebler也做出了许多贡献。它实际上自 2015 年以来一直存在。
此库仅是标头,您只需将其包含目录添加到包含路径。我定义了一个 bash 别名以便快速使用(您可能想做类似的事情(:
alias gconcepts='g++ -fconcepts -std=c++17 -I$HOME/cmcstl2/include'
相关文章:
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 用C++20 fmt限制结果的总大小
- 导入库可以跨dll版本工作吗
- 如何在C++20中创建模板别名的推导指南
- 实施具有 C++20 概念的配对概念
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 在clang++预处理器中确定gcc工具链版本
- 码头化的C++应用程序是否向后兼容早期的内核版本
- C++20概念:需要运算符重载
- 不同的Visual Studio版本中缺少.dll
- 用符号版本替换对函数的所有调用
- luaL_dofile在已知良好的字节码上失败,可以使用未编译的版本
- 为什么在C++20中对lambdas使用"std::bind_front"
- 填孔方法需要20分钟以上
- 正在解码MSVC 32位版本的程序集(作业).没有手术做什么
- 我需要分发哪些版本的可再分发文件
- 标准::累积C++20版本
- 错误:不支持 GLSL 3.30.支持的版本包括:1.10、1.20、1.30、1.00 ES、3.00 ES、3.10
- ld.so.1:protoc:fatal:libstdc++.so.6:在 Solaris 11 中找不到版本"GLIBCXX_3.4.20"
- 是 GCC 6.2 或更高版本中的 C++20 实验范围