-// Copyright (C) 2011 Free Software Foundation
+// Copyright (C) 2011-2020 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++0x" }
+// { dg-do compile { target c++11 } }
#include <vector>
-#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
struct T { int i; };
-namespace __gnu_test
-{
- inline void
- swap(propagating_allocator<T, true>& l, propagating_allocator<T, true>& r)
- noexcept(false)
- {
- typedef uneq_allocator<T> base_alloc;
- swap(static_cast<base_alloc&>(l), static_cast<base_alloc&>(r));
- }
-}
-
using __gnu_test::propagating_allocator;
void test01()
test_type v1(alloc_type(1));
test_type v2(alloc_type(2));
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
- static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
-}
-
-int main()
-{
- test01();
- test02();
- test03();
- return 0;
+ static_assert( noexcept( v1.swap(v2) ), "Swap cannot throw" );
}