|
|
Если функция, имеющая спецификацию-особой-ситуации, запускает неуказанную особую ситуацию, то вызывается функция
void unexpected();
Она в свою очередь вызывает функцию, которая была задана как параметр при последнем обращении к set_unexpected():
typedef void(*PFV)(); PFV set_unexpected(PFV);
Функция, которая была задана в предыдущем вызове set_unexpected(), будет возвращаемым значением текущего вызова. Это помогает пользователю реализовать алгоритм восстановления стека. По умолчанию unexpected() вызывает terminate(). Поскольку по умолчанию terminate() вызывает abort(), результатом будет непосредственное и точное обнаружение ошибки.
| |