Home > itblogs > Статические assertions против динамических.

Статические assertions против динамических.

November 21st, 2006
Кстати, никто не знает как перевести на русский слово assertion?

Интересно сравнить частоту использования статических и динамических assertions. Поиск в Google Code Search выдаёт вот такие результаты:

  • Поиск по “C_ASSERT” даёт 15 ссылок;
  • “BOOST_STATIC_ASSERT” – около 200;
  • “STATIC_ASSERT” – ещё 100.

В то же время общее число упоминаний “ASSERT” даёт около 386000 ссылок. Разница больше 3-х порядков! Из этого можно сделать вывод, что статические assertions, не смотря на всю пользу от них, практически не используются. Для сравнения, на один статический assertion в коде Vista приходится около 50 динамических.

Чем хороши статические assertions? Во-первых, все проверки выполняются во время компиляции, позволяя обнаруживать ошибки как можно раньше. Во-вторых, при компиляции выполняются все проверки, присутсвующие в программе, в том время как динамические assertions проверяются только во время выполнения каждой ветки кода (что может и не случиться до самого выпуска программы “в свет”).

Естественное ограничение статических assertions – они могут проверять только статические условия. Очевидно что в большинстве случаев динамический assertion – единственный выбор программиста. Тем не менее, следует стремиться использовать статические проверки везде, где это возможно.

  1. November 24th, 2006 at 04:01 | #1

    >>Кстати, никто не знает как перевести на русский слово assertion?

Comments are closed.