問題タブ [boost-lambda]
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++ - ヒープ上にオブジェクトを生成するための関数型プログラミング手法
ヒープ上にクラスAのN個のオブジェクトを生成するコードの例があります。
コードは、ファンクター「Generator」および「generate_n」アルゴリズムを使用してジョブを実行します。私はこのタスクの単純化について悩んでいます。boost:lambda、boost :: phoenixは可能な候補です(もしそうなら?)、そしてそれをどのように行うのですか?または多分他の選択肢がありますか?
c++ - STLコンテナでboost::lambdaを使用する
完全なコードはhttps://gist.github.com/1341623にあります
配列が他のベクトルのインデックスによって順序付けられるように、別のベクトルのインデックス配列(またはベクトル)を並べ替えたいと思います。ただし、vector::atのタイプは解決できません。
私は次のように試しました:
これで結構です
配列に従ってインデックスを並べ替えたいのですが、プレースホルダーはoperator[]をオーバーロードしません
ただし、operator+とoperator*をオーバーロードします
ベクトルに従ってインデックスをソートしたいのですが、コンパイラは `vector ::at'のタイプを解決できません。
Webで検索したところ、オーバーロードされたメソッドタイプを指定する必要があることがわかりましたが、コンパイラはそれでもタイプを解決できないと言っています。
vector :: atのバージョンを取得しようとしましたが、変換に失敗したようです。
この問題に対して何ができますか?または私は何かを誤解していますか?
c++ - boost::bind、boost::lambda::bind、boost::phoenix::bind の違い
これらの異なるバインド アプローチの違いを理解しようとしています。boost::bind および boost::phoenix::bindにも同様の質問があります
しかし、誰かがこれを例で説明できれば、それは素晴らしいことです。また、boost::phoenix が boost::bind、booost::lambda ライブラリのスーパーセットであることは本当ですか?
c++ - C++ブーストラダムと==-演算子の問題
がある:
と:
それから私はこの呼び出しを持っています(これはエラーです):
そして、をworms()
返します(これはメンバー関数です)。Ref<Iterator<CWorm*> Ref>
int CWorm::getID();
これは、バイナリ式の無効なオペランドに関する非常に長いエラーで失敗します。その一部:
/usr/local/include/boost/lambda/detail/operator_lambda_func_base.hpp:222:1:{222:1-222:63}{222:1-222:63}:エラー:バイナリ式のオペランドが無効です('typename lambda_functor_base>、tuple>、int(CWorm :: * const)()const、null_type、null_type、null_type、null_type、null_type、null_type、null_type、null_type >> :: sig> :: type'(別名' member_pointer_caller')および'int')[3]
なんで?
どうすれば修正できますか?
ラムダを介さずに、もう少し冗長にすると、別の関数を手動で宣言して使用するboost::bind
と、機能します。つまり、このように:
boost - Boost.Lambda-間接参照プレースホルダー
ラムダ式内のプレースホルダーを逆参照する方法はありますか?
私はバインディングを作成できることを知っています:
、しかし、ifステートメントなどを使用して、より複雑な式を作成したいと思います。
c++ - MSVCおよびboost::lambda :: bindエラー:T0:標準引数は許可されていません
このコードは、GCCとClangで正常にコンパイルされますが、MSVC2010ではコンパイルされません。
エラーが発生します:
(オフトピック:英語でエラーを取得するにはどうすればよいですか?)
代わりに使用&eventStart
することも機能しませんが、エラーは異なります。
なんで?コードは正しいようです。
関数のデフォルトの引数を削除するとeventStart
機能します。
c++ - ブースト::ラムダ std::マップ
boost::lambda を使用してコードを簡素化したい。これが私のコードです:
最後に、これは結果のエラー コードです。
エラー C2664: 'Tools::Serilizer::makePair': パラメーター 2 を 'const boost::lambda::lambda_functor' から 'const Tools::Serilizer::Serilizable &' に変換できません
これを解決する方法のヒントはありますか?
c++ - 複合式でブースト ラムダを使用する
このアクションを実行するために boost::lambda を使用したい Visual Studio 2008 C++03 アプリケーションがあります。
残念ながら、これはうまくいきません:
複合式を実行するためにboost::lambdaを取得する正しい方法は何ですか? != 演算子をバインドする必要がありますか?
ありがとう
c++ - Boost(Lambda?)を使用してstd :: sort()を簡単にする方法は?
私が持っているとしましょう
Value
C ++ 03で多数のインデックスを並べ替える場合は、次のような面倒な記述を行う必要があります。
Boostを使って(おそらくBoost.Lambdaを使って)これをもっときれいに、できれば1行で書く方法はありますか?