C ++标准委员会正在研究用于概念扩展的TS(技术规范):“编程语言-概念的C ++扩展”。N4377是本文档的最新版本。为了包含在C ++标准中,要求实现功能,理想情况下是可公开访问的系统。
我知道concept-gcc,但是上面的概念提议(俗称Concepts Lite)是不同的。我听说这里有一个Concepts分支,我已经尝试了origin/asutton/c++-concepts
从gcc的git
镜像,但是没有编译。如何构建和使用上述[草稿] TS中指定的gcc支持概念版本?
根据安德鲁·萨顿(Andrew Sutton)的说法,Concepts Lite Lite的git镜像完全过时了,不应该使用。在svn资源库中有一个用于GCC实现“ concepts-lite”的概念分支(在C ++ 11之前曾有过将概念添加到C ++的工作,但被放弃了;开始使用名称将新概念添加到C ++的新工作是精简版)。进行构建非常简单(假设您已经安装了最新的gcc及其依赖的软件包;请参阅gcc安装说明以获取您可能希望通过的其他选项:以下说明对我有用,除了我明确指出configure
了其中位置GMP,MPC和MPFR安装):
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
尚不完全清楚的是如何实际使用概念:该选项-fconcepts
确实存在,但似乎无条件地执行了与启用Lite-Lite不同的操作。而是-std=c++1z
在启用概念的情况下进行编译时使用该选项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句