問題タブ [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++ - オブジェクトに boost::lambda::bind? の戻り値を割り当てますか?
後で使用するためにバインドされたラムダ関数を保存すると便利だと思いますが、boost::lambda::bind
関数の戻り値がその戻り値の型のオブジェクトに割り当てられている例は見たことがありません。これをきれいに行う方法はありませんか、またはそれを行う理由がないだけですか?
例:
boost-lambda - std::find_if でラムダをブーストしてもコンパイルされない
あるクラスの次のテンプレート メンバー メソッドについて考えてみましょう。
コンパイラは次のエラーを返します (何百ものテンプレート エラーに加えて):
型SLnAdjW
は、自由に定義された == 演算子関数を持つ POD C 構造体です。
ここで何が間違っていますか?
c++ - boost::lambda::placeholder1_type を変換できません
boost::lambda で遊んでみましたが、解決方法がわからないエラーが発生しました。
私はこれが初心者のエラーであると感じているので、私の無知を許してください(そして、ブーストラムダのドキュメント全体も読まなかった私の怠惰を認めなければなりません)。
場合によっては、boost::bind (またはboost::lambda::bind?) を使用する方がboost::lambda よりも適しているようですが、ここで適用できるかどうかはわかりません。目的に反するため、用に別の関数を作成する必要はありませんif cond(arg1) arg2.insert(arg1) ;
。私が推測するファンクターよりもはるかに優れているとは言えません。
仕事でVC9でブースト1.35を使用しています。エラーは、cond()
およびinsert()
呼び出し元のサイトにあります:「C2664: 'boost::lambda::placeholder1_type からパラメーター 1 を変換できません」
Cygwin で g++ を使用して、このスニペットの問題を再現しました。
g++ エラー:
どんな助けでも大歓迎です、
ありがとう
c++ - ブースト ラムダ関数呼び出し
私はブーストラムダを学んでいます(c++ 0Xラムダではないと思いますが、それらは異なると思います)。しかし、唯一の入力パラメーターが呼び出しオブジェクトである場合、オンラインでメンバー関数を呼び出す (そして結果を出力する) 方法を見つけることができません。つまり、この行は機能します:
vecCt が のvector
場合int
。しかし、 vecCt が、文字列を返すために呼び出される関数を持つvector
of の場合はどうなるでしょうか? これも:MyClass
getName
これも:
動作します。
私はオンラインで検索しましたが、多くの結果は、メンバー関数を呼び出すときに bind を使用することを提案しています。今、私はこれを知っています
getName
int が渡された各オブジェクトを呼び出すことができますが、この出力を cout に渡すにはどうすればよいですか? これは機能しません:
c++ - 定数を返すブースト バインドまたはラムダ ファンクター
boost::bind または boost lambda ライブラリを使用して、引数を無視し、常に定数を返すファンクタを作成できますか?
たとえば、次と同等の動作を持つファンクタ: