![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Если у вас падает код, значит у вас ошибка.
Компилятор всегда прав.
НО! Верить нельзя никому. Особенно MSVC компилятору.
GCC работает не поперхнувшись.
Указатель
typedef void (PolicyChecker::*FramePolicyFunction)(PolicyAction);
При forward декларации класса считает метод не виртуальным.
При явной декларации - правильно разрешает в виртуальный вызов.
Линкер не дает ошибки (предупреждений не видел тоже). Результат - вынос мозга.
Ассемблер выглядит как попытка вызвать _fastcall, при том что сама функция _stdcall.
Пойду повешусь.
Компилятор всегда прав.
НО! Верить нельзя никому. Особенно MSVC компилятору.
GCC работает не поперхнувшись.
Указатель
typedef void (PolicyChecker::*FramePolicyFunction)(PolicyAction);
При forward декларации класса считает метод не виртуальным.
При явной декларации - правильно разрешает в виртуальный вызов.
Линкер не дает ошибки (предупреждений не видел тоже). Результат - вынос мозга.
Ассемблер выглядит как попытка вызвать _fastcall, при том что сама функция _stdcall.
Пойду повешусь.
no subject
Date: 2013-07-05 08:35 pm (UTC)no subject
Date: 2013-07-11 07:39 am (UTC)no subject
Date: 2013-07-11 07:39 am (UTC)