正如 Andrew Sutton 在许多会谈和论文中指出的那样,Concepts Lite 提案确实具有基于概念的重载功能,同时没有概念图的概念,即模板参数完全由编译器。鉴于此,尚不清楚他们将如何解决 Siek 和 Gregor 在 2005 年的论文中描述的问题,“<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005 /n1798.html" rel="nofollow">明确的模型定义是必要的”。简而言之,可以用论文中的以下引文来说明问题。
因此,某些输入迭代器类型(例如 istream_iterator)会被错误分类为前向迭代器。这有什么危险?一些基于 Input_iterator 与 Forward_iterator 的算法调度。
(不过,除了迭代器之外还有更多示例。)
是的,我知道上面提到的那篇论文考虑了 C++0x 概念,但问题似乎是概念提案的“通用”。