如何使用C ++概念(“concepts lite”)支持构建gcc?

时间:2015-05-17 18:02:23

标签: c++ g++ generic-programming c++-concepts c++17

C ++标准委员会正在研究概念扩展的TS(技术规范):“编程语言 - 概念的C ++扩展”。 N4377是本文档的最新版本。要包含在C ++标准中,要求实现功能,最好是公共可访问的系统。

我知道concept-gcc,但上面的概念提议(通俗地称为 Concepts Lite )是不同的。我听说有一个概念分支,我已经尝试了来自gccorigin/asutton/c++-concepts镜像的git,但是没有编译。如何构建和使用上述[草案] TS中指定的gcc支持概念版本?

1 个答案:

答案 0 :(得分:26)

根据Andrew Sutton的说法,Concepts Lite作品的git镜像完全过时了,不应该使用。 svn存储库中有一个概念分支,用于gcc实现" concepts-lite" (有一个前C ++ 11的努力将概念添加到C ++中,这个概念被放弃了;使用名称概念lite开始了向C ++添加概念的新工作。构建起来相当简单(假设你已经有了一个最近的gcc以及它所依赖的软件包;请参阅gcc install指令,了解你可能要传递的其他选项:下面的说明对我有用,除了我明确指出{{ 1}}在安装了gmpmpcmpfr的位置:

configure

如何实际使用概念并不是完全明显的:选项cd <suitable-directory> svn checkout svn://gcc.gnu.org/svn/gcc/branches/c++-concepts mkdir build-concepts cd build-concepts ../c++-concepts/configure --prefix=<concept-gcc-root> --disable-bootstrap --enable-languages=c,c++ make -j8 make install 确实存在,但似乎无条件地执行与启用concepts-lite不同的东西。相反,在启用概念进行编译时,您将使用-fconcepts选项。