![]() |
|
|
![]()
|
|
| zim22 |
|
||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: нет Всего: 69 |
Сабж.
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:17 |
||||
|
|||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 2 Всего: 154 |
все правильно, он тебя предупреждает, что ты бросаешь исключение там где это делать нельзя
в целях оптимизации, MSVC игнорирует все спецификации исключений кроме throw() это не правиьно с точки зрения стандарта, но на практике как правило указывают только thrwo(), либо вообще не указывают, так что здесть нет проблемы |
||||
|
|||||
| zim22 |
|
||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: нет Всего: 69 |
а вот пример попроблемней. Спецификация исключения виртуальной функции производного класса должна совпадать или быть более строгой, чем спецификация исключений соответствующей виртуальной функции базового класса. MSVC и здесь нарушает стандарт....
Добавлено через 1 минуту и 49 секунд
ладно, я понял что студии на стандарт начхать... |
||||
|
|||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
На самом деле, спасибо ей за это. Спецификация исключений - весьма спорный момент в стандарте. Теоретически звучит здорово, но в практической жизни больше мешает (вроде бы у Мейерса в последних реинкарнациях его советов интересные рассуждения на этот счет). Ну на самом деле, как можно, проектируя базовый класс, знать, что никогда в жизни его наследникам не придется бросать исключений в override-методах? Ну и т.д. В общем, если придерживаться спецификации исключений, получается примерно то, что получилось с языком АДА: целью было создать язык, на котором сложно писать неверные программы. А получился язык, на котором вообще сложно писать. -------------------- ... |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: нет Всего: 69 |
Мейерс новую книжку издал? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Уточняю: последних, котрые я читала. Не знаю, вроде нет, но реинкарнаций советов было по крайней мере 2. И они немного разные (советы) - концепции меняются на глазах.
-------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |