Я недавно натолкнулся на потребность иметь утверждения времени компиляции в C++, чтобы проверить, что размеры двух типов были равны.
Я нашел следующий макрос в сети (указанным для прибытия из ядра Linux):
#define X_ASSERT(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
как который я использовал так:
X_ASSERT(sizeof(Botan::byte) != sizeof(char));
Это получает меня любопытный - хотя это работает, там более чистый способ сделать так? (очевидно, существует больше чем один путь, как это), там преимущества или недостатки к определенным методам?