1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9// FILE_DEPENDENCIES: test.dat, test2.dat
10
11// <fstream>
12
13// template <class charT, class traits = char_traits<charT> >
14// class basic_ifstream
15
16// template <class charT, class traits>
17// void swap(basic_ifstream<charT, traits>& x, basic_ifstream<charT, traits>& y);
18
19#include <fstream>
20#include <cassert>
21
22#include "test_macros.h"
23
24int main(int, char**)
25{
26 {
27 std::ifstream fs1("test.dat");
28 std::ifstream fs2("test2.dat");
29 swap(fs1, fs2);
30 double x = 0;
31 fs1 >> x;
32 assert(x == 4.5);
33 fs2 >> x;
34 assert(x == 3.25);
35 }
36#ifndef TEST_HAS_NO_WIDE_CHARACTERS
37 {
38 std::wifstream fs1("test.dat");
39 std::wifstream fs2("test2.dat");
40 swap(fs1, fs2);
41 double x = 0;
42 fs1 >> x;
43 assert(x == 4.5);
44 fs2 >> x;
45 assert(x == 3.25);
46 }
47#endif
48
49 return 0;
50}
51

source code of libcxx/test/std/input.output/file.streams/fstreams/ifstream.assign/nonmember_swap.pass.cpp