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 の概念を考慮していることは承知していますが、問題は概念の提案よりも「一般的」であるようです。