Я понимаю, что sizeof является оператором, который оценивается во время компиляции целой константе. Но, похоже, он не может использоваться в директиве препроцессора #if, например:
#if 4 == sizeof(int)
typedef int Int32;
#endif
(cygwin-gcc 3.4.4, а также ошибки компиляции отчета Visual С++ 6.0)
Почему такое использование не разрешено?