1 //===----------------------------------------------------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 // UNSUPPORTED: c++98, c++03, c++11
11 
12 // <experimental/any>
13 
14 // void swap(any &, any &) noexcept
15 
16 // swap(...) just wraps any::swap(...). That function is tested elsewhere.
17 
18 #include <experimental/any>
19 #include <cassert>
20 
21 using std::experimental::any;
22 using std::experimental::any_cast;
23 
main()24 int main()
25 {
26 
27     { // test noexcept
28         any a;
29         static_assert(noexcept(swap(a, a)), "swap(any&, any&) must be noexcept");
30     }
31     {
32         any a1(1);
33         any a2(2);
34 
35         swap(a1, a2);
36 
37         assert(any_cast<int>(a1) == 2);
38         assert(any_cast<int>(a2) == 1);
39     }
40 }
41