fix link
This commit is contained in:
parent
8b668e1d4f
commit
ccd1022221
|
@ -7,7 +7,7 @@
|
||||||
- [10.5. Инварианты](#10-5-инварианты)
|
- [10.5. Инварианты](#10-5-инварианты)
|
||||||
- [10.6. Пропуск проверок контрактов. Итоговые сборки](#10-6-пропуск-проверок-контрактов-итоговые-сборки)
|
- [10.6. Пропуск проверок контрактов. Итоговые сборки](#10-6-пропуск-проверок-контрактов-итоговые-сборки)
|
||||||
- [10.6.1. enforce – это не (совсем) assert](#10-6-1-enforce-это-не-совсем-assert)
|
- [10.6.1. enforce – это не (совсем) assert](#10-6-1-enforce-это-не-совсем-assert)
|
||||||
- [10.6.2. assert(false) – останов программы](#10-6-2-assertfalse-останов-программы)
|
- [10.6.2. assert(false) – останов программы](#10-6-2-assert-false-останов-программы)
|
||||||
- [10.7. Контракты – не для очистки входных данных](#10-7-контракты-не-для-очистки-входных-данных)
|
- [10.7. Контракты – не для очистки входных данных](#10-7-контракты-не-для-очистки-входных-данных)
|
||||||
- [10.8. Наследование](#10-8-наследование)
|
- [10.8. Наследование](#10-8-наследование)
|
||||||
- [10.8.1. Наследование и предусловия](#10-8-1-наследование-и-предусловия)
|
- [10.8.1. Наследование и предусловия](#10-8-1-наследование-и-предусловия)
|
||||||
|
@ -519,7 +519,7 @@ string fun()
|
||||||
|
|
||||||
Вызов `enforce(false)` всегда порождает исключение, но компилятор не знает об этом. Инструкция `assert(false);` дает компилятору понять, что эта точка недостижима. Завершить выполнение `fun` можно и с помощью инструкции `return "";`, но если позже кто-нибудь закомментирует вызов `enforce`, `fun` начнет возвращать фиктивные значения. Выражение `assert(false)` – настоящий *deus ex machina*, избавляющий ваш код от таких ситуаций.
|
Вызов `enforce(false)` всегда порождает исключение, но компилятор не знает об этом. Инструкция `assert(false);` дает компилятору понять, что эта точка недостижима. Завершить выполнение `fun` можно и с помощью инструкции `return "";`, но если позже кто-нибудь закомментирует вызов `enforce`, `fun` начнет возвращать фиктивные значения. Выражение `assert(false)` – настоящий *deus ex machina*, избавляющий ваш код от таких ситуаций.
|
||||||
|
|
||||||
[В начало ⮍](#10-6-2-assertfalse-останов-программы) [Наверх ⮍](#10-контрактное-программирование)
|
[В начало ⮍](#10-6-2-assert-false-останов-программы) [Наверх ⮍](#10-контрактное-программирование)
|
||||||
|
|
||||||
## 10.7. Контракты – не для очистки входных данных
|
## 10.7. Контракты – не для очистки входных данных
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue