問題タブ [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++ - rangev3 範囲を使用して flatmap を実装する方法
flatmap
私はC++ で実装された非常に単純な関数を持っstd::vector
ていますが、範囲は一般的に優れていることが示唆されています。ベクトルベースのソリューションは次のとおりです。
イテレータを使用することも提案されていますが、それは関数の素晴らしい構成可能性を壊します:
range-v3 の世界では、上記を次のように書くことを目指していると思います。
、flatmap
、 の些細な組み合わせであるべきだと思いますが、それらをすべて組み合わせる方法を見つけるのに苦労しています。views::for_each
yield_from
transform
c++ - range-v3 で範囲のサイズを取得できなかったのはなぜですか?
名前が「T」で始まる人の数を取得したい:
しかし、私は巨大なコンパイルエラーを受け取りました:
ところで、私は Visual Studio 2015 Update 1 で clang 3.7 を使用しています。
c++ - range-v3 で gsl::span を使用する
GSL と range-v3 ライブラリに慣れるために、ちょっとした例を試してみましたが、どうすればそれらを連携させることができるのだろうと思いました。私はこのおもちゃの例を持っています
動作します。しかし、範囲として使用しようとするgsl::span<int>
と、エラー メッセージが表示されます。コンパイラはspan
、ビューの概念を満たしていないことを教えてくれます。
コンパイラ メッセージ:
しかし、私の理解では、 aspan
は特定のビューであり、 (同じ型の)begin()
およびend()
イテレータさえあるため、そうすべきです。
- それらが構成可能で一緒に動作するのはクールではないでしょうか? それとも、両方に互換性がない理由がありますか?
- これは、range-v3 での強力な「概念」の使用に起因する問題だと思います。他の種類の概念機能が言語でサポートされている場合、自動的に解決されますか?
span
両方のライブラリを(非産業用の)ソフトウェアで一緒に使用したい場合は、現在、何らかの適応が必要であると思います。これらを連携させるには、何を変更すればよいですか? (それがまったく良い考えであれば)- それはまた、最終的に「作業するために満たすべきクラスは何
range-v3
ですか?」という質問に私を導きます。ファサード、アダプターなどからの継承は、現在、これらの概念的な要件についてコンパイラーに伝える唯一の方法ですか?
c++ - 一時コンテナーを使用する範囲パイプラインを作成するにはどうすればよいですか?
私はこの署名を持つサードパーティ関数を持っています:
また、名前付きの既存の潜在的に無限の範囲 ( range-v3 sort ) があります。その範囲のすべての要素にマップし、すべてのベクトルをすべての要素を含む単一の範囲にフラット化するパイプラインを作成したいと考えています。T
src
f
本能的に、私は次のように書きます。
ただし、一時コンテナーのビューを作成できないため、これは機能しません。
range-v3 はこのような範囲パイプラインをどのようにサポートしていますか?
c++ - Ranges TS 破壊的変更?
Ranges TS をstd
名前空間に挿入すると、標準ライブラリに多くの重大な変更が生じると言われています (例:このリンク)。それらの変更が何であるかを知っている人はいますか?