diff options
Diffstat (limited to 'test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp')
| -rw-r--r-- | test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp b/test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp deleted file mode 100644 index 8de582a6b76e3..0000000000000 --- a/test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp +++ /dev/null @@ -1,103 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// UNSUPPORTED: c++98, c++03, c++11 - -// XFAIL: availability=macosx - -// <experimental/any> - -// any::swap(any &) noexcept - -// Test swap(large, small) and swap(small, large) - -#include <experimental/any> -#include <cassert> - -#include "experimental_any_helpers.h" - -using std::experimental::any; -using std::experimental::any_cast; - -template <class LHS, class RHS> -void test_swap() { - assert(LHS::count == 0); - assert(RHS::count == 0); - { - any a1((LHS(1))); - any a2(RHS{2}); - assert(LHS::count == 1); - assert(RHS::count == 1); - - a1.swap(a2); - - assert(LHS::count == 1); - assert(RHS::count == 1); - - assertContains<RHS>(a1, 2); - assertContains<LHS>(a2, 1); - } - assert(LHS::count == 0); - assert(RHS::count == 0); - assert(LHS::copied == 0); - assert(RHS::copied == 0); -} - -template <class Tp> -void test_swap_empty() { - assert(Tp::count == 0); - { - any a1((Tp(1))); - any a2; - assert(Tp::count == 1); - - a1.swap(a2); - - assert(Tp::count == 1); - - assertContains<Tp>(a2, 1); - assertEmpty(a1); - } - assert(Tp::count == 0); - { - any a1((Tp(1))); - any a2; - assert(Tp::count == 1); - - a2.swap(a1); - - assert(Tp::count == 1); - - assertContains<Tp>(a2, 1); - assertEmpty(a1); - } - assert(Tp::count == 0); - assert(Tp::copied == 0); -} - -void test_noexcept() -{ - any a1; - any a2; - static_assert( - noexcept(a1.swap(a2)) - , "any::swap(any&) must be noexcept" - ); -} - -int main() -{ - test_noexcept(); - test_swap_empty<small>(); - test_swap_empty<large>(); - test_swap<small1, small2>(); - test_swap<large1, large2>(); - test_swap<small, large>(); - test_swap<large, small>(); -} |
