【初心者歓迎】C/C++室 Ver.29【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0152デフォルトの名無しさん
2006/07/14(金) 20:24:45マルチスレッドを考慮しなくてよければグローバル変数を使え。考慮する必要があるならTLSを使え。
テンプレートを使えばもっと汎用的にできる。
class Hoge {
public:
void func(int, int, int);
};
namespace {
void* ptr;
void (Hoge::*mem_ptr)(int, int, int);
void callEntry(int a, int b, int c) {
(ptr->*mem_ptr)(a, b, c);
}
void call(Hoge& hoge, void (Hoge::*fn)(int, int, int)) {
ptr = hoge;
}
int main(){
Hoge hoge;
call(hoge, &Hoge::func);
}
或いはメンバ関数を呼び出すための「サンク」を作る方法もある。
■ このスレッドは過去ログ倉庫に格納されています