Date
2016-11-21.05:09:01
Message id
8667

Content

Proposed resolution:

This wording is relative to N4606.

  1. Modify [except.nested] p9:

    template <class E> void rethrow_if_nested(const E& e);
    

    -9- Effects: If E is not a polymorphic class type, or if nested_exception is an inaccessible or ambiguous base class of E, there is no effect. Otherwise, if the static type or the dynamic type of e is nested_exception or is publicly and unambiguously derived from nested_exception, callsperforms:

    dynamic_cast<const nested_exception&>(e).rethrow_nested();
    if (auto p = dynamic_cast<const nested_exception*>(addressof(e)))
      p->rethrow_nested();