boost :: bindは、多くの状況で非常に便利です。それらのうちの1つは、io_serviceがコールを後で行うことができるようにメソッド呼び出しをディスパッチ/ポストすることです。どのようにboost :: bind privateメソッドを呼び出すことができますか?
#include <boost/asio.hpp>
#include <boost/bind.hpp>
boost::asio::io_service ioService;
class A {
public: A() {
// ioService will call B, which is private, how?
ioService.post(boost::bind(&A::B, this));
}
private: void B() {}
};
void main()
{
A::A();
boost::asio::io_service::work work(ioService);
ioService.run();
}
しかし、私の知る限りでは、ブーストがファンクタを作成する(演算子(とクラスを()))できる:1は率直に期待するかもしれないような状況では
は、後押し::バインドは動作します指定されたオブジェクトの指定されたメソッドを呼び出します。そのクラスはプライベートBにアクセスする必要がありますか?私はそうは思わない。
私はここで何が欠けていますか?
プライベートスタティックメソッドへの通常のポインタについても同様です。 – MSalters