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

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

c++ - ヒープ上にオブジェクトを生成するための関数型プログラミング手法

ヒープ上にクラスAのN個のオブジェクトを生成するコードの例があります。

コードは、ファンクター「Generator」および「generate_n」アルゴリズムを使用してジョブを実行します。私はこのタスクの単純化について悩んでいます。boost:lambda、boost :: phoenixは可能な候補です(もしそうなら?)、そしてそれをどのように行うのですか?または多分他の選択肢がありますか?

0 投票する
3 に答える
419 参照

c++ - STLコンテナでboost::lambdaを使用する

完全なコードはhttps://gist.github.com/1341623にあります

配列が他のベクトルのインデックスによって順序付けられるように、別のベクトルのインデックス配列(またはベクトル)を並べ替えたいと思います。ただし、vector::atのタイプは解決できません。

私は次のように試しました:

これで結構です

配列に従ってインデックスを並べ替えたいのですが、プレースホルダーはoperator[]をオーバーロードしません

ただし、operator+とoperator*をオーバーロードします

ベクトルに従ってインデックスをソートしたいのですが、コンパイラは `vector ::at'のタイプを解決できません。

Webで検索したところ、オーバーロードされたメソッドタイプを指定する必要があることがわかりましたが、コンパイラはそれでもタイプを解決できないと言っています。

vector :: atのバージョンを取得しようとしましたが、変換に失敗したようです。

この問題に対して何ができますか?または私は何かを誤解していますか?

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

c++ - boost::bind、boost::lambda::bind、boost::phoenix::bind の違い

これらの異なるバインド アプローチの違いを理解しようとしています。boost::bind および boost::phoenix::bindにも同様の質問があります

しかし、誰かがこれを例で説明できれば、それは素晴らしいことです。また、boost::phoenix が boost::bind、booost::lambda ライブラリのスーパーセットであることは本当ですか?

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

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と、機能します。つまり、このように:

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

boost - Boost.Lambda-間接参照プレースホルダー

ラムダ式内のプレースホルダーを逆参照する方法はありますか?

私はバインディングを作成できることを知っています:

、しかし、ifステートメントなどを使用して、より複雑な式を作成したいと思います。

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

c++ - MSVCおよびboost::lambda :: bindエラー:T0:標準引数は許可されていません

このコードは、GCCとClangで正常にコンパイルされますが、MSVC2010ではコンパイルされません。

エラーが発生します:

(オフトピック:英語でエラーを取得するにはどうすればよいですか?)

代わりに使用&eventStartすることも機能しませんが、エラーは異なります。

なんで?コードは正しいようです。

関数のデフォルトの引数を削除するとeventStart機能します。

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

c++ - ブースト::ラムダ std::マップ

boost::lambda を使用してコードを簡素化したい。これが私のコードです:

最後に、これは結果のエラー コードです。

エラー C2664: 'Tools::Serilizer::makePair': パラメーター 2 を 'const boost::lambda::lambda_functor' から 'const Tools::Serilizer::Serilizable &' に変換できません

これを解決する方法のヒントはありますか?

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

c++ - 複合式でブースト ラムダを使用する

このアクションを実行するために boost::lambda を使用したい Visual Studio 2008 C++03 アプリケーションがあります。

残念ながら、これはうまくいきません:

複合式を実行するためにboost::lambdaを取得する正しい方法は何ですか? != 演算子をバインドする必要がありますか?

ありがとう

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

c++ - Boost(Lambda?)を使用してstd :: sort()を簡単にする方法は?

私が持っているとしましょう

ValueC ++ 03で多数のインデックスを並べ替える場合は、次のような面倒な記述を行う必要があります。

Boostを使って(おそらくBoost.Lambdaを使って)これをもっときれいに、できれば1行で書く方法はありますか?