Created on 2010-08-25.00:00:00 last changed 161 months ago
Proposed resolution:
Change 18.8.7 nested_exception [except.nested] as indicated:
[[noreturn]] template <class T> void throw_with_nested(T&& t);Let U be remove_reference<T>::type
6 Requires:
TU shall be CopyConstructible.7 Throws: If
TU is a non-union class type not derived from nested_exception, an exception of unspecified type that is publicly derived from bothTU and nested_exception and constructed from std::forward<T>(t), otherwise throws std::forward<T>(t).
[ Adopted at 2010-11 Batavia ]
[ 2010-11-10 Batavia: LWG accepts Howard's updated wording with corrected boo boos reported by Sebastian Gesemann and Pete Becker, which is approved for Immediate adoption this meeting. ]
[ 2010-10-24 Daniel adds: ]
Accepting n3144 would solve this issue.
[ Resolution proposed by ballot comment ]
Patch [except.nested] p6-7 to match the intent with regards to requirements on T and the use of std::forward<T>(t).
Addresses US-84
The throw_with_nested specification passes in its argument as T&& (perfect forwarding pattern), but then discusses requirements on T without taking into account that T may be an lvalue-reference type. It is also not clear in the spec that t is intended to be perfectly forwarded.
History | |||
---|---|---|---|
Date | User | Action | Args |
2011-08-23 20:07:26 | admin | set | status: wp -> c++11 |
2010-11-24 14:01:03 | admin | set | messages: + msg5429 |
2010-11-14 13:10:57 | admin | set | status: voting -> wp |
2010-11-13 01:17:02 | admin | set | status: open -> voting |
2010-11-13 01:11:40 | admin | set | status: immediate -> open |
2010-11-10 14:00:56 | admin | set | messages: + msg5324 |
2010-11-10 14:00:56 | admin | set | status: open -> immediate |
2010-10-25 01:00:51 | admin | set | messages: + msg5109 |
2010-10-25 01:00:51 | admin | set | messages: + msg5108 |
2010-10-24 22:33:31 | admin | set | messages: + msg5074 |
2010-10-24 03:04:13 | admin | set | messages: + msg4899 |
2010-08-25 00:00:00 | admin | create |