Просматривая последние изменения рабочего проекта С++ 0x, я нашел много
- удаление ключевого слова
noexcept
- добавление текстового Throws: nothing в том же месте
и наоборот. Несколько примеров:
- замена
noexcept
на Броски: ничего: 20.6.4 Безопасность указателя [util.dynamic.safety]template<class T> T*undeclare_reachable(T*p);
- добавление
noexcept
: 20.6.3.2. Функции-члены указателя [pointer.traits.functions]:static pointer pointer_trait<T*>::pointer_to(...) noexcept;
Вопросы здесь:
- Есть ли общее правило/шаблон, когда мы найдем
noexcept
vs. Throws: nothing в Std-Lib? - Должны ли пользователи получать определенное поведение по данному правилу? То есть когда они должны или не должны добавлять
noexcept
к своим собственным функциям?