問題タブ [boost-function]
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::function同様のクラス
boost :: functionに似たクラスFunctionを実現したいと思います。クラスFunctionは、main.cppで次のように使用できます。
私のFunction.hppには、
上記のコードは、関数f =&funct1では正常に機能
しますが、関数b = boost :: bind(&funct1、_1);では機能しません。
boost :: Functionがどのように正確に機能するのか、そしてFunctionサポートboost::bindのために何ができるのか知りたいです。
c++ - C++ クラスでの static 宣言
2 番目の機能ではなく、最初の機能が機能しない理由がわかりません。
また、concurrentQueue クラスの先頭も添付します。
c++ - boost::function をコピーするとクロージャもコピーされますか?
次のような関数があるとします。
boost::function を作成すると、その関数はオブジェクトの独自のクローン コピーをクロージャーに格納します。
f を渡し始めると、boost::function コピー コンストラクターは毎回そのオブジェクトをコピーしますか、それとも各関数は同じクロージャーを共有しますか? (つまり、このように)
c++ - ブーストバインド/ブースト機能で問題を引き起こすブーストタプル?
ここでの問題は非常に一般的だと思いますが、ここで何が間違っているのかよくわかりません。
私はいくつかのboost::asioのことをやっていて、テンプレート化された非同期読み取り関数を書き込もうとしています。
ここに関数があります。
この関数の最後のステートメントで事態が悪化し始めます。
変数 'x' をパラメーターとして async_read 関数に渡そうとしたとき。
エラーは、長さと解読可能な意味の欠如の両方で伝説的です。
エラー出力のほんの一例:
ここでブースト関数を使用せず、代わりにメンバー関数への参照であるコメントアウトされた行を使用すると、うまくいくように見えますが、その理由を特定することはできません。
AConnection::HandleReadHeader 関数テンプレートの関数シグネチャは次のとおりです。
ハンドラーのタイプは次のとおりです。
関数 AsyncRead と HandleReadHeader は、私自身のクラス AConnection のメンバーです (おそらく重要ではありません)。
署名にboost::tupleが含まれるboost::functionオブジェクトの作成に関する構文に関する何かが欠けているか、boost::asio::async_read関数の3番目のパラメータータイプが変数 'xと一致していません'。
どんな助けでも大歓迎です。ありがとうございました。
編集:
これは機能しますが、boost::functon の代わりにメンバー関数参照を使用するコードです。
c++ - 2 つの独立した boost::bind() を 1 つの boost::function に結合する方法は?
私は2つの機能を持っていf()
ますg()
. 毎回順番に呼んでいきたいです。私boost::function
はこれを行うことができますか?例:
これをさらに拡張して、引数が必要だとすると、必要なのは一連の責任です。各ノードは引数を使用して何かを行い、その後にチェーンの次のノードが続きます。それ、どうやったら出来るの?
Update Seth Carnegie のコメントに感謝します。私が本当に望んでいるのは、責任の連鎖を単一の に構築する方法であり、連鎖のboost::function
各ノードは を使用して構築できますboost::bind()
。
c++ - boost :: bind&boost::functionと部分引数
私がやりたいことの例をあなたに投稿します、それはこのように説明するのが簡単です
何か案は?
c++ - boost::bindとboost::unordered_mapの挿入
に新しいキーと値のペアを挿入するboost::bind
ために使用したいのですが、コンパイルエラーがほとんど発生しませんでした。boost::function
boost::unoredered_map
以下のエラーbind
は、の適切なオーバーロードが見つからないようですunordered_map::insert
。この場合、正確に正しいオーバーロードを指定しますが、今回は機能しません。あなたはそれが何であるか知っていますか?
c++ - boost :: functionをポインターに複製し、そのポインターでラップされた関数を呼び出す
ポインタを使用してのコピーを作成し、boost::function
そのポインタを使用してその関数を呼び出そうとしています。私の質問は
- そのようにクローンを作成するの
boost::function
は正しいことです - toの呼び出し
fp->target()
は、boost :: functionでラップされた関数を呼び出すかどうかを指定しますか?
どうもありがとう
c++ - llvm g++ とブースト機能
数学関数を評価するためにboost::functionによって導入される時間オーバーヘッドが、 を使用する場合と比較して無視できるかどうかを判断しようとしていfunction templates
ます。
私が使用するベンチマークのコードは次のとおりです。
従来g++
の では、オーバーヘッドboost::function
はごくわずかです。
を使用llvm-g++
すると、 では速度が 1.5 倍になりますが、 では速度が向上しtemplates function
ませんboost::function
。
boost::function
との 1.5 ゲインを得ることができllvm-g++
ますか?
boost - Boost.Lambda-間接参照プレースホルダー
ラムダ式内のプレースホルダーを逆参照する方法はありますか?
私はバインディングを作成できることを知っています:
、しかし、ifステートメントなどを使用して、より複雑な式を作成したいと思います。