Cのソースにある、structをクラスへ書き換える。
関数ポインタ使ってると、下記のようにすればいい。
typedef int (*handler_t)(int fd, void* arg); typedef int (*destructor_t)(void* arg); typedef struct context { void* arg; handler_t handler; destructor_t destructor; } context;
class Base { static int handler(int fd, void* arg); static int destructor(void* arg); }; class Context { public: void* arg; int (Base::*handler)(int fd, void* arg); int (Base::*destructor)(void* arg); };
==== 2012.03.30 追記 ====
って思ってたけど、なんか違う?
typedef int (*handler_t)(int fd, void* arg); typedef void (*destructor_t)(void* arg); class Context { public: void* arg; handler_t handler; destructor_t destructor; };
こうするのか?
==== 追記その2 ====
これでもいいのかー
//typedef int (*handler_t)(int fd, void* arg); //typedef void (*destructor_t)(void* arg); class Context { public: void* arg; // handler_t handler; // destructor_t destructor; boost::function<int (int, void*)> handler; boost::function<void (void*)> destructor; };