Dlaczego nie mogę użyć sizeof w stanie preprocesora?
Rozumiem, że sizeof jest operatorem, który jest oceniany w czasie kompilacji na stałą całkowitą. Ale wydaje się, że nie można go użyć w dyrektywie preprocesora #if, takiej jak:
#if 4 == sizeof(int)
typedef int Int32;
#endif
(cygwin-gcc 3.4.4, a także błędy kompilacji raportów w Visual C ++ 6.0)
Dlaczego takie użycie jest niedozwolone?