【问题标题】:Do any STL implementations support C++ concepts?是否有任何 STL 实现支持 C++ 概念?
【发布时间】:2015-03-29 03:32:05
【问题描述】:

我正在做一个使用 C++ 概念的课程项目。在哪里可以找到支持具有来自 concepts draft TS 的约束的 STL 实现,例如 Equality_comparableSortable

感谢您的帮助!


到目前为止,这是我尝试过的:

我已经成功编译了c++-concepts branch from GCC's SVN,它似乎得到了维护(昨天由 Andrew Sutton 更新)。但是,这个分支附带的 libstdc++ 并没有更新概念。

我还尝试了Concepts-Lite (gcc-clite),它承诺:

此编译器随附的标准库包含论文 "A Concept Design for the STL" 中的约束,可通过包含 <type_traits> 头文件来访问该约束。

但是,从该页面下载的 GCC 代码中的 libstdc++ 也没有概念。特别是,type_traits 标头似乎与它所派生的 GCC 修订版相比没有变化。

【问题讨论】:

  • 我怀疑你能在任何地方找到它
  • TS 草案没有在库中指定 anything;它纯粹是一种语言扩展。
  • 对,它不在发行版 gcc 中。但是引用的 clite 页面暗示他们在 2 年前在他们的 libstdc++ 分支上实现了概念! :-)
  • gcc-clite-0.2.tar.bz2 的库中似乎确实有一些概念。您可能需要向 Andrew Sutton 发送电子邮件。
  • STL != "C++ 标准库"。你的问题是什么?只是容器?还是整个图书馆?

标签: c++ stl libstdc++ c++-concepts


【解决方案1】:

看看Andrew Sutton's Origin library on github。如果您关注origin/core 目录,您可以找到基本概念。从外观上看,他也有一些图表、数学和一些容器的东西。

我不得不承认我自己也在探索这个,所以我还没有智能报告。

唯一的缺点:最近的签到是在几个月或更长时间之前。我想我们会看到的。

【讨论】:

  • 在提出这个问题的同时,我给 Andrew 发了电子邮件,这就是他说要使用的。谢谢!
  • 我对 Origin 库中的活动有误。截至 2015 年 3 月 30 日,核心库的签入时间只有 5 天。凉豆。
  • 来自未来的说明:建议的库不同于与当前接受的标准概念规范 (eel.is/c++draft/concepts),其概念实现不等效到标准的。
  • 两个最新的实现:github.com/CaseyCarter/cmcstl2.git
猜你喜欢
  • 1970-01-01
  • 2012-05-20
  • 1970-01-01
  • 1970-01-01
  • 2011-06-10
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
  • 1970-01-01
相关资源
最近更新 更多