Created on 2008-03-25.00:00:00 last changed 161 months ago
Proposed resolution:
Change [except.nested], p8:
template <class E> void rethrow_if_nested(const E& e);-8- Effects:
Calls e.rethrow_nested() oOnly if the dynamic type of e is publicly and unambiguously derived from nested_exception this calls dynamic_cast<const nested_exception&>(e).rethrow_nested().
[ 2010 Pittsburgh: ]
Moved to Ready for Pittsburgh.
[ 2010-03-10 Dietmar updated wording. ]
[ 2009-11-09 Alisdair provided wording. ]
[ 2009-10 Santa Cruz: ]
Leave as Open. Alisdair to provide wording.
[ San Francisco: ]
Alisdair was volunteered to provide wording.
Looking at the wording I submitted for rethrow_if_nested, I don't think I got it quite right.
The current wording says:
template <class E> void rethrow_if_nested(const E& e);Effects: Calls e.rethrow_nested() only if e is publicly derived from nested_exception.
This is trying to be a bit subtle, by requiring e (not E) to be publicly derived from nested_exception the idea is that a dynamic_cast would be required to be sure. Unfortunately, if e is dynamically but not statically derived from nested_exception, e.rethrow_nested() is ill-formed.
History | |||
---|---|---|---|
Date | User | Action | Args |
2011-08-23 20:07:26 | admin | set | status: wp -> c++11 |
2010-10-21 18:28:33 | admin | set | messages: + msg3912 |
2010-10-21 18:28:33 | admin | set | messages: + msg3911 |
2010-10-21 18:28:33 | admin | set | messages: + msg3910 |
2010-10-21 18:28:33 | admin | set | messages: + msg3909 |
2010-10-21 18:28:33 | admin | set | messages: + msg3908 |
2010-10-21 18:28:33 | admin | set | messages: + msg3907 |
2008-03-25 00:00:00 | admin | create |