Этого код компилируется (как я бы ожидать):__stdcall ЬурейеГо г ++ проблема
typedef void __stdcall (*Func)();
struct A {
static void __stdcall f() { }
};
int main() {
Func p = A::f;
}
Но это одна:
struct A {
typedef void __stdcall (*Func)();
static void __stdcall f() { }
};
int main() {
A::Func p = A::f;
}
терпит неудачу с не-очень-полезным сообщением об ошибке:
error: invalid conversion from `void (*)()' to `void (*)()'
Я использую g ++ 3.4.2 под Vista (я знаю, он древний, но у меня сейчас нет доступа к какой-либо другой среде). Очевидно, что я что-то упустил. Любая помощь будет оценена по достоинству.
Что вы пытаетесь достичь. В C ot обычно используется адрес функции. в C++ очень редко требуется адрес функции или метода. –