C ++标准委员会正在研究概念扩展的TS(技术规范):“编程语言 - 概念的C ++扩展”。 N4377是本文档的最新版本。要包含在C ++标准中,要求实现功能,最好是公共可访问的系统。
我知道concept-gcc,但上面的概念提议(通俗地称为 Concepts Lite )是不同的。我听说有一个概念分支,我已经尝试了来自gcc的origin/asutton/c++-concepts
镜像的git
,但是没有编译。如何构建和使用上述[草案] TS中指定的gcc支持概念版本?
答案 0 :(得分:26)
根据Andrew Sutton的说法,Concepts Lite作品的git镜像完全过时了,不应该使用。 svn存储库中有一个概念分支,用于gcc实现" concepts-lite" (有一个前C ++ 11的努力将概念添加到C ++中,这个概念被放弃了;使用名称概念lite开始了向C ++添加概念的新工作。构建起来相当简单(假设你已经有了一个最近的gcc以及它所依赖的软件包;请参阅gcc install指令,了解你可能要传递的其他选项:下面的说明对我有用,除了我明确指出{{ 1}}在安装了gmp,mpc和mpfr的位置:
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
选项。