пытаетесь включить в функцию

Автор admin Понедельник, 4 мая 2009 11:32

пытаетесь включить в функцию рор() спецификацию исключений: Т рор() throw(logic_error); Единственная потенциальная ошибка, которую можно себе представить, — попытка извлечения элемента из пустого стека, поэтому кажется, что вполне безопасно задать исключение logic_error или другого подходящего типа. Но копирующий конструктор типа Т тоже может запустить исключение! В этом случае будет вызвана функция unexpected(), а программа завершится. Не стоит давать обещания, которые невозможно выполнить. Если вы не знаете, какие исключения могут возникнуть в программе, не используйте спецификации исключений. Вот почему в шаблонах, составляющих основную часть стандартной библиотеки С++, отсутствуют спецификации исключений — известные им исключения указываются в документации, а остальное остается на ваше усмотрение. Спецификации исключений требуются главным образом в нешаблонных классах. Безопасность исключений 51 Безопасность исключений В главе 7 мы подробно рассмотрим контейнеры стандартной библиотеки, в том числе контейнер stack. В частности, вы увидите, что объявление функции рор() выглядит так: void рор(); Мо


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