тически представляет собой про

Автор admin Пятница, 22 мая 2009 11:32

тически представляет собой проверку логического выражения, за которой программа либо не делает ничего (если условие истинно), либо аварийно завершается с выдачей диагностических сообщений. Понятно, что нарушения утверждений должны выявляться как можно раньше. Если условие может быть проверено на стадии компиляции, лучше использовать утверждение времени компиляции. В следующем примере показан простой прием с отображением логического выражения на объявление массива: //: C05:StaticAssertl.cpp {-хо} // Простой механизм проверки условий времени компиляции fdefine STATIC_ASSERT(x) \ do { typedef int a[(x) ? 1 : -1]: } while (0) int mainO { STATIC_ASSERT(sizeof(int) <- sizeof(long)); // Проходит STATIC_ASSERT(sizeof(double) <- sizeof(int)): // He проходит } ///:- Цикл do создает временную область видимости для определения массива, размер которого задается проверяемым условием. Определение массива с размером -1 недопустимо, поэтому при нарушении условия команда также не выполняется. В предыдущем разделе было показано, как организовать проверку логических выражений на стадии компиляции. Однако для полноценной эм


Комментарии закрыты.