問題タブ [range-v3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Ranges-v3 view::join で双方向性を保持
view::join
(驚くべき) Ranges-v3 ライブラリの関数オブジェクトで問題が発生しました。私のクライアント コードは、範囲のコレクションの集計ビュー用の back メソッドの存在に依存しています (ランダム アクセス イテレータを大いに歓迎します)。
関連ドキュメントを確認したところ、メソッドは join_view クラス テンプレートのインスタンス化と互換性があるようですが、そのようback
にインスタンス化できませんでした。
コンパイラ エラー メッセージの関連ビットは次のとおりです。
最初の要件は、CRTP の適切な使用を強制しているように見えますが、これは満たされています。したがって、はまたは概念join_view
のいずれか (または両方) に違反します。可能性として、前者をすばやく排除することができました。BoundedView
BidirectionalView
この場合、概念はflat
満たされますが、エラー メッセージは変更されません。BoundedView
を検証するためにBidirectionalView
、 のイテレータを調べてみましたjoin_view
が、遭遇した (疑わしいのは) バグです。
簡単に検査できるように、ライブバージョンを作成しました。
bidirectional をインスタンス化する運があった人はいますjoin_view
か? 基になるデータをコピーせずに同様の動作を実現する方法について何か提案はありますか?