| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Поддерживает ли MSVC 2008 спецификацию исключений |
| Автор: zim22 5.4.2009, 11:10 | ||||
Сабж.
warning C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow) А хуже всего то, что я явно указываю, что функция вообще не будет кидать exception. Но компилятор компилит, только ещё один warning выплёвывает: warning C4297: 'fcn2' : function assumed not to throw an exception but does
|
| Автор: zim22 5.4.2009, 11:34 | ||||
а вот пример попроблемней. Спецификация исключения виртуальной функции производного класса должна совпадать или быть более строгой, чем спецификация исключений соответствующей виртуальной функции базового класса. MSVC и здесь нарушает стандарт....
Добавлено через 1 минуту и 49 секунд
ладно, я понял что студии на стандарт начхать... |
| Автор: Earnest 5.4.2009, 14:36 |
На самом деле, спасибо ей за это. Спецификация исключений - весьма спорный момент в стандарте. Теоретически звучит здорово, но в практической жизни больше мешает (вроде бы у Мейерса в последних реинкарнациях его советов интересные рассуждения на этот счет). Ну на самом деле, как можно, проектируя базовый класс, знать, что никогда в жизни его наследникам не придется бросать исключений в override-методах? Ну и т.д. В общем, если придерживаться спецификации исключений, получается примерно то, что получилось с языком АДА: целью было создать язык, на котором сложно писать неверные программы. А получился язык, на котором вообще сложно писать. |
| Автор: zim22 5.4.2009, 14:39 |
Мейерс новую книжку издал? |
| Автор: Earnest 5.4.2009, 14:41 |
| Уточняю: последних, котрые я читала. Не знаю, вроде нет, но реинкарнаций советов было по крайней мере 2. И они немного разные (советы) - концепции меняются на глазах. |