alloc_traits.h (__alloc_traits::_S_nothrow_swap()): Use __is_nothrow_swappable.
authorJonathan Wakely <jwakely@redhat.com>
Wed, 17 Jun 2015 10:51:46 +0000 (11:51 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 17 Jun 2015 10:51:46 +0000 (11:51 +0100)
* include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()): Use
__is_nothrow_swappable.

From-SVN: r224552

libstdc++-v3/ChangeLog
libstdc++-v3/include/ext/alloc_traits.h

index a9ed2064aeac2a7714cd3758a2372cc723578803..caa32f7383a4c300da7e0bbce79df8502c194c5f 100644 (file)
@@ -1,3 +1,8 @@
+2015-06-17  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()): Use
+       __is_nothrow_swappable.
+
 2015-06-16  Jonathan Wakely  <jwakely@redhat.com>
 
        * include/bits/allocated_ptr.h (__allocated_ptr): Use __addressof.
index 06bc70a4cb2a959fd0630abbdf4c4c783515e69b..bd0f75945aa834fba7bd42fb745cd0271c27f8be 100644 (file)
@@ -159,9 +159,8 @@ template<typename _Alloc>
 
     static constexpr bool _S_nothrow_swap()
     {
-      using std::swap;
       return !_S_propagate_on_swap()
-               || noexcept(swap(std::declval<_Alloc&>(), std::declval<_Alloc&>()));
+       || std::__is_nothrow_swappable<_Alloc>::value;
     }
 
     template<typename _Tp>