GCC 6.2或更高版本中的C ++ 20实验范围是?

时间:2017-03-24 13:18:03

标签: c++ gcc

我想试验C ++ 20实验范围库。我试图搜索它是否在GNU Compiler Collection(GCC)6.2或更高版本中实现,但没有找到任何信息。范围库是否在GCC中实现?

2 个答案:

答案 0 :(得分:4)

我还没有找到任何官方文件说明GCC到目前为止支持实验性的Ranges TS,所以答案似乎是否定的。

作为补充说明,Eric Niebler为Ranges提供了“参考”实施,您可以找到它on github
已知代码可用于以下编译器:
- clang 3.6.2(或更高版本)
- GCC 4.9.4(或更高版本)(C ++ 14支持需要GCC 5.2; C ++ 14“扩展constexpr”支持在6.1之前很差。)
- “使用Microsoft CodeGen”(Clang / C2)VS2015 Update 3(或更高版本)

答案 1 :(得分:1)

Ranges库与GCC是分开的,尽管GCC当前是唯一支持Ranges的编译器。埃里克·尼伯勒(Eric Niebler)的range-v3库非常有用,但与Ranges TS却有很大不同。确实实现Ranges TS的库称为cmcstl2,主要由Casey Carter编写,并且Eric Niebler也做出了许多贡献。它实际上是从2015年开始存在的。

此库仅是标头,您只需要将其包含目录添加到包含路径。我为快速使用定义了一个bash别名(您可能想做类似的事情):

alias gconcepts='g++ -fconcepts -std=c++17 -I$HOME/cmcstl2/include'