boost :: asio操作を呼び出すライブラリモジュールを作成しようとしています。このモジュールは、結果に基づいて、さらに処理するためにアプリケーションロジックレイヤーによって使用されます。boost :: bindコールバックを引数として取り出す関数の定義方法
私の要件は単純で簡単です。私が必要とするのは、以下の私のUtilクラスのコールバックfnを指定すること、関数ptr、boost :: bind(メンバfn)を呼び出すこと、その他のコールバックを呼び出すことです。 。
class Util {
public:
void sendMsg(const Msg& m, <some callback fn here...>) {
// Make a call to boost::asio approximately as below..
boost::asio::async_write(socket_, boost::asio::buffer(message_),
boost::bind(&tcp_connection::handle_write, shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
// Here, I want to pass the "<some callback fn here>" to async_write,
// instead of calling boost::bind here. How to do that?
}
};
だから、私の具体的な質問が..です 何私のSENDMSG署名は次のようになりますか?私はfnシグネチャ、特にコールバック部分に到達できません。
これを行う方法を教えてくださった皆様に感謝します。あなたはラムダへのアクセス権を持っている場合は
'のstd :: function'を受け入れるのは簡単ですか!テンプレート型ですか? – Arcinde
大丈夫です。私は最近、C++の多くでタッチを失った。あなたは親切に簡単な例を提供できますか?pls –
ok、thxヒント。私はそれを持っているようです。私は古き良き学校のC++です。ブースト、非同期のものに慣れる。 –