While going through the last edits of the C++0x Working draft I found a lot of
- removal of the keyword
noexcept
- addition of textual Throws: nothing at the same place
and vice versa. Just some examples:
- replacement of
noexcept
against Throws: nothing: 20.6.4 Pointer safety [util.dynamic.safety]template<class T> T*undeclare_reachable(T*p);
- addition of
noexcept
: 20.6.3.2. Pointer traits member functions [pointer.traits.functions]:static pointer pointer_trait<T*>::pointer_to(...) noexcept;
Questions here:
- Is there a general rule/pattern, when we will find
noexcept
vs. Throws: nothing in the Std-Lib? - Should users derive a specific behavior by that given rule? I.e. when they should or should not add
noexcept
to their own functions?