Я хотел бы выполнить во время компиляции проверку размеров типов данных в проекте C / C ++ и выявить ошибку при неожиданном несоответствии. Simple
#if sizeof foo_t != sizeof bar_t
не компилируется - утверждает, что sizeof не является правильной константой времени компиляции.
Желаемый набор платформ - как минимум Visual C ++ с Win32 / 64 и GCC на x86 / amd64.
РЕДАКТИРОВАТЬ : время компиляции, не обязательно препроцессор. Просто не ошибка времени выполнения.
РЕДАКТИРОВАТЬ2 : код предполагает, что wchar_t
составляет 2 байта. Мне нужна ошибка компиляции, если она случайно скомпилирована с 4-байтовым wchar.