noexcept for <memory>. I've added a few extension noexcept to: allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const. My rationale was: If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept. We're all a little new to noexcept, so things like this are to be expected. Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|. And fixed a test case for is_nothrow_destructible. Destructors are now noexcept by default|

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132261 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Howard Hinnant
2011-05-28 14:41:13 +00:00
parent 10f25d2739
commit 1694d23e23
8 changed files with 456 additions and 320 deletions

View File

@@ -60,10 +60,10 @@ struct A
int main()
{
test_has_not_nothrow_destructor<void>();
test_has_not_nothrow_destructor<A>();
test_has_not_nothrow_destructor<Abstract>();
test_has_not_nothrow_destructor<NotEmpty>();
test_is_nothrow_destructible<A>();
test_is_nothrow_destructible<int&>();
test_is_nothrow_destructible<Union>();
test_is_nothrow_destructible<Empty>();