コードでメンバー関数のルックアップ テーブルを作成しようとしていますが、「コピーできない」クラスを拡張してブロックしたコピー コンストラクターを呼び出そうとしているようです。私が持っているのは次のようなものです。
enum {FUN1_IDX, FUN2_IDX, ..., NUM_FUNS };
class Foo {
fun1(Bar b){ ... }
fun2(Bar b){ ... }
...
void (Foo::*lookup_table[NUM_FUNS])(Bar b);
Foo(){
lookup_table[FUN1_IDX] = &Foo::fun1;
lookup_table[FUN2_IDX] = &Foo::fun2;
}
void doLookup(int fun_num, Bar b) {
(this->*lookup_table[fun_num])(b);
}
};
エラーは、'(this->...' 行がコピー コンストラクターを呼び出そうとすることですが、これは表示されません。