Проект компилируется компиляторами MS от VC++ 6.0 (версия 12) и от Win2k3 DDK (версия 13.10). В классе есть пара функций-переходников:
void Lock (void) const { CS.Enter (); }
void Unlock (void) const { CS.Leave (); }
При включенной оптимизации обе функции, само собой, замечательно инлайнятся. При отключенной (Debug/checked) — не инлайнятся, хоть ты тресни. Добавил __forceinline, вставлял перед этими определениями #pragma optimize ("gt", on), пробовал перебирать параметры оптимизации в прагме — упорно не инлайнит. Понятно, если вставлять прагмы там, где зовутся Lock/Unlock — все будет нормально, но это неприемлемо.
Enter/Leave — обычные (не виртуальные) функции, без рекурсии, CS — ссылка на объект их класса.
Как заставить компилятор инлайнить эти функции при отключенной общей оптимизации?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>