問題タブ [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.

0 投票する
1 に答える
219 参照

c++ - Ranges-v3 view::join で双方向性を保持

view::join(驚くべき) Ranges-v3 ライブラリの関数オブジェクトで問題が発生しました。私のクライアント コードは、範囲のコレクションの集計ビュー用の back メソッドの存在に依存しています (ランダム アクセス イテレータを大いに歓迎します)。

関連ドキュメントを確認したところ、メソッドは join_view クラス テンプレートのインスタンス化と互換性があるようですが、そのようbackにインスタンス化できませんでした。

コンパイラ エラー メッセージの関連ビットは次のとおりです。

最初の要件は、CRTP の適切な使用を強制しているように見えますが、これは満たされています。したがって、はまたは概念join_viewのいずれか (または両方) に違反します。可能性として、前者をすばやく排除することができました。BoundedViewBidirectionalView

この場合、概念はflat満たされますが、エラー メッセージは変更されません。BoundedView

を検証するためにBidirectionalView、 のイテレータを調べてみましたjoin_viewが、遭遇した (疑わしいのは) バグです。

簡単に検査できるように、ライブバージョンを作成しました。

bidirectional をインスタンス化する運があった人はいますjoin_viewか? 基になるデータをコピーせずに同様の動作を実現する方法について何か提案はありますか?

0 投票する
2 に答える
217 参照

c++ - ラムダとグローバル関数でranges::for_eachを呼び出す

次のコードは期待どおりに機能します。

ただし、次のとおりです。

コンパイルエラーが発生します:

ソースを見てみましたが、正直なところ問題がわかりませんでした。