問題タブ [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オブジェクトを作成する際のエラーC2228
以下のコードは、Visual C++2005ではコンパイルされません。
SomeClassコンストラクターの引数を括弧で囲んだり、引数リストの外にboost :: functionオブジェクトを作成したりすると、正常にコンパイルされます。
前のコードの問題は何ですか?
c++ - C++ ファンクターとゼロ
最初の免責事項として、boost::function と boost::bind を使用する一連のコードを置き換えます。ただし、rtti を許可しないコードベースに移行しています。ブーストを使い続けたいのですが、この制限を回避する方法があるかどうかわかりません。
そのため、その機能の一部を模倣しようとしていますが、より単純化されています。私はコールバッククラスを持っています:
これにより、パラメータなしで簡単なコールバックを実行できます。
次のように、コールバック オブジェクトをデフォルト パラメータとしてゼロに割り当てられるようにしたいと考えています。
これは、次のように boost::function を使用するときに機能します。
ここでブーストが何らかの魔法を行っていると思います。パラメーターを参照ではなくポインターに変更できることはわかっていますが、前述のように、多くのコードを置き換えており、boost からの変更の影響を最小限に抑えたいと考えています。
c++ - ブーストバインド/機能のヘルプ
私はこの関数の署名を持っています私は一致しなければなりません
これが私がこれまでに持っているものです:
ただし、ではlua_register(_luaState...
、まだ変換の問題について不平を言っています
エラー1エラーC2664:'lua_pushcclosure':パラメーター2を'boost::function'から'lua_CFunction'に変換できません
誰もがこれを解決する方法を知っていますか?
c++ - boost :: threadedメンバー関数から戻り値を取得しますか?
以下のようなワーカークラスがあります。
これは、boost::threadおよびboost::bindで実行されることを目的としています。たとえば、次のようになります。
私の質問は、Worker :: Doの戻り値を取得するにはどうすればよいですか?
前もって感謝します。
c++ - boost::関数の実行時のパフォーマンス
動的にロードされるライブラリ用のプラットフォームに依存しないラッパーを実装中です。もちろん、ライブラリから関数をロードするときは、将来の使用のためにそれらをポインタとして保存する必要があります。通常の関数ポインターの代わりに、boost::function を使用することを考えました。確かに、コンパイル時間が長くなりますが、それは私が恐れていることではありません。それよりも:
保存された関数を呼び出すときに、boost::function によって導入されるオーバーヘッドはどれくらいですか? ありますか?それはどれくらい大きいですか?
そのような関数を時々呼び出す場合、オーバーヘッドはあまり発生しないと思いますが、頻繁に呼び出される関数はどうですか? glVertex
(ロードされた GL ライブラリの極端な例)。パフォーマンスにどの程度影響しますか?
ソースダイビングブーストはあまり答えませんでした:>.
また、コンパイラに依存する場合は、主に GCC と MSVC に興味があります。
c++ - boost::functionオブジェクトのコンテナでのSTLアルゴリズム
forループを使用する次のコードがあり、代わりにtransform、または少なくともfor_eachを使用したいのですが、方法がわかりません。
コードの後半で、このnullary関数オブジェクトのコレクションを実際に呼び出したいと思います。ここでもforループを使用していますが、どういうわけかfor_eachを使用できるはずです。
c++ - boost::bindおよびboost::functionを使用したコールバックとしてのクラスメンバー関数
使用しているCライブラリのコールバックとしてメンバー関数を設定しています。Cライブラリは次のようなコールバックを設定します。
boost :: bind(可能な場合)を使用して関数ポインターを渡したいと思います。ポイントされている関数は、静的メンバーではなく、インスタンス化されたクラスのメンバーであることが望ましいです。例えば
これは、boost::bindとboost::functionを使用して実行できますか?クラスメンバー関数をコールバックとして渡すにはどうすればよいですか?(3番目の答え)私は次のことを宣言できるようです(どこか、またはtypedefとして):
そして、A(ctor)のどこかでそのタイプのboost :: bindを呼び出し、それをCライブラリ呼び出しに渡します。
これは可能ですか、それとも私はオフベースですか?どうもありがとう。
c++ - このboost::lambdaの使用の何が問題になっていますか?
この boost::lambda 式が機能しないのはなぜですか?
これらのコンパイル エラーが表示されますが、これはおそらく役に立たないでしょう。