В C ++ 0x (из здесь ):
В C ++ 0x могут быть объявлены статические утверждения для обнаружения и диагностики распространенных ошибок использования во время компиляции.
это синтаксис static_assert
:
>>-static_assert--(--constant-expression--,--string-literal----->
, где constant-expression
необходимо контекстно преобразовать в bool
.Если он преобразуется в false
, то компилятор выдаст ошибку в соответствии с string-literal
.
Итак, это в основном расширение языка, которому необходимо ключевое слово.Это не механизм выполнения.
Снова из документа, на который ссылаются выше:
Добавление статических утверждений к языку C ++ имеет следующие преимущества:
Библиотеки могут обнаруживать распространенные ошибки использования во время компиляции.
Реализации стандартной библиотеки C ++ могут обнаруживать и диагностировать распространенные ошибки использования, улучшая удобство использования.
Вы можете использовать объявление static_assert для проверки важных программных инвариантов во время компиляции.