class A
{
public:
void Func(){}
} aa;

struct B
{
int b;
} bb;

float cc() { return 1.0f; }

// アドレステーブル
void *Adr[] = {
(void*)&aa,
(void*)&bb.b,
(void*)&cc,
};

というような、なんでもありの配列 Adr の初期値に、
aa.Func() のアドレスを入れたいのですが、うまくいきません。

// アドレステーブル
void *Adr[] = {
(void*)&aa.Func, // error
(void*)&bb.b,
(void*)&cc,
};
とすると、void を void* にキャストできないとエラーが出ます。
どのようにすればよいのか、アドバイスをお願いします。