【发布时间】:2014-04-04 21:13:16
【问题描述】:
Herb Sutters 在演讲中提到了受限模板(又名 Concepts Lite):Modern C++: What You Need to Know。
我知道 boost 有一个概念包已经存在很长时间了,当模板推导机制无法找到运算符、函数或具有访问冲突模式时,它允许人们漂亮地打印错误消息。
我在isocpp blog 上提到已经有一个gcc 的实验分支实现document proposing Concepts Lite。但是查看当前的C++14 draft,我找不到任何提示,这是否已经是C++14 的一部分。
所以问题很简单:
- Concepts Lite 会成为 C++14 的一部分吗? (标准中的参考首选。我没找到,对标准也不是很熟悉。)
- 它的正确语法是什么? (这里的提案和Herb的slides有分歧,不知道哪一个更新)
- 您能否举一个约束(谓词)和受约束模板的最小示例?
注意:如果您等待的时间足够长,我会尝试让 gcc 分支运行,并且至少可以说明有关实验性实现的任何内容,但这并不意味着语法的正确性。
【问题讨论】:
-
Concepts Lite 会成为 C++14 的一部分吗? (首选标准中的参考什么?还没有 C++14 标准。无论如何,不,它们不会出现在 C++14 中。我会尝试找到一些参考/讨论..跨度>
-
The proposal 解释得很好。并不是说这个问题不合理,不是每个人都想读 30 页。
-
Stroustrup says on his homepage 他们最终将成为 C++14 的 TR。不过,不确定这些信息的最新程度。
-
它不在 C++14 标准中,而是在附录(技术报告)中。取决于你如何定义“标准”,它要么是它的一部分,要么不是。根据iso.org/iso/home/standards_development/…,TR 不是规范的,嗯,isocpp.org 说这将是一个 TS,请参阅iso.org/iso/home/standards_development/… 这将是规范的..