
21 Feb
2012
21 Feb
'12
11:47 a.m.
Michel Morin wrote:
Ah, I see what I was missing. As Daryle said, the destruction of a MemberType temporary is invoked in noexcept operator. I didn't notice this, because clang does not evaluate the destructor.
Sorry, this is incorrect. Clang **does** checking the destructor in noexcept operator. I didn't know of N3204 (deducing noexcept for destructors), http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3204.htm and I made a wrong comment on clang's noexcept operator. As per N3204 (clang already implemented this), with the following type struct type { type() noexcept; ~type() { throw 0; } }; `noexcept(type())` should return true, despite the fact that the destructor throws. Regards, Michel