問題タブ [boost-range]
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++ - C++11ラムダでのBoostアダプターの使用
私はこのコードをコンパイルしようとしました:
コンパイルは次のエラーメッセージで失敗しました(長いテンプレートインスタンス化小説の後):
私は問題をグーグルで検索し、BoostUsersメーリングリストアーカイブでこれを見つけました。#define BOOST_RESULT_OF_USE_DECLTYPE
使用することで問題が解決することが示唆されました。コードの最初に配置しましたが、それでもコンパイルされません。エラーメッセージの長さははるかに短いようですが、最後のエラーメッセージは同じです。現在、Boost1.50を使用しています。
ここで何が問題になる可能性がありますか?これを機能させる方法はありますか?
c++ - ブースト変換イテレータとc++11ラムダ
私は、アダプターにc++0xラムダを提供することによってboost::adapters::transformedを使用しようとしています。
次のコードはコンパイルされません。私はブースト1.48でg++4.6.2を使用しています。
私がここで間違っていることについて何か考えはありますか?
c++ - Boost::Range の itertools.tee と同等ですか?
Pythonitertools
にtee
は n-plicating iterables があります:
に相当するものが見つかりませんでしたBoost::Range
。何か足りないのですか、それとも自分でロールする必要がありますか?
c++ - テンプレート化されたイテレータからのboost::iterator_range
itertools.tee
Boost ::Range用のPythonのC++バージョンを作成しようとしています(ここに表示されています)。これが私の最初の試みです:
しかし、私がそれを使おうとするとすぐに:
value_type
それは私の顔を吹き飛ばし、boost::detail::iterator_traits<tee_iterator<std::list<int, std::allocator<int> > > >
(そして他の人たちの)行方不明について不平を言います。私は何が欠けていますか?tee_iterator
十分な子供ではありませんstd::iterator
か?
c++ - Boost::range でアダプターを作成する
C++ で遅延変換のパイプラインを作成するために、Boost::Range を使い始めました。私の問題は、パイプラインを小さな部分に分割する方法です。私が持っているとします:
そして、最初の 2 つのマップを に置き換えたいmagic_transform
、つまり:
どのように書くmagic_transform
でしょうか?Boost::Range のドキュメントを調べたのですが、よくわかりません。
補遺:私はこのようなクラスを書きたいと思っています:
c++ - boost::range_iteratorとboost::iterator_rangeの混乱
私は図書館を通り抜けていてboost::range
、気づきboost::range_iterator
ましたboost::iterator_range
。私はここでこれらの用語と混同しています。誰かが2つの違いは何ですか、そしていつ何を使うべきか説明してもらえますか?また、ドキュメントとは別に、ブースト範囲ライブラリを使用してそれについて詳しく知るためのサンプル例を教えていただければ幸いです。
c++ - boost :: adapters::transformedに続いてboost::adapters::filtered呼び出しが2回機能します
私は(それを呼びましょう)を(boost::adaptors::transformed
それを呼びましょう)にチェーンしようとしています-アイデアは、範囲全体で「たぶん」(私の場合は)を返すをマップし、結果の一部のみを出力することです。私の最初の実装:map
boost::adaptors::filtered
filter
fun
std::pair<bool, T>
これを実行すると、次のようになります。
であるたびにpredicate
、true
がfun
2回呼び出されます。これは予想される動作ですか?私は何か間違ったことをしていますか、それともこれはBoostのバグですか(1.48を使用しています)?
編集:Boostのトランクバージョンでこれを試しましたが、それでも発生します。
stl-algorithm - ブースト範囲で変換アルゴリズムを使用する
こんにちは、boost.range を使用して 2 つの std ベクトルを追加しようとしていますが、大量のエラーが発生します。
これは機能します:
これはしません:
エラーあり:
そしてこれも:
エラーあり:
c++ - ブースト範囲フィルターアダプターを無効にする
ブーストフィルターアダプターを無効にすることは可能/達成可能ですか?
ラムダ式内で否定を行う代わりに?
動機:私はフィルター処理された関数とラムダ関数をよく使用しますが、フィルターを複数回使用する場合は、通常、カスタムフィルターにリファクタリングします。
現在、否定が必要な場合は、それらのカスタムフィルターを作成しています。
しかし、フィルターを無効にできる方がいいと思います。
c++ - 隣接する要素にアクセスできる変換済みのブーストレンジアダプター
与えられた範囲の隣接する値によって変換される範囲を作りたいです。これを達成する方法はありますか?したがって、以下のコードで説明されている隣接変換を作成したいと思います。
もう1つの簡単な質問:Func()
範囲アダプターにある右辺値を渡すのは安全ですboost::adaptors::transformed
か?私がテストした限り、それは期待通りに動作します。安全な場合、Func()は?にコピーされtransformed
ますか?Func()
次に、コピーにコストがかかる場合はどうすればよいですか?
関連する質問ではない場合は申し訳ありませんが、ブースト範囲の内部を理解するのに十分なスキルがありません。