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 // <sstream>
10 
11 // template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
12 // class basic_stringbuf
13 
14 // template <class charT, class traits, class Allocator>
15 //   void swap(basic_stringbuf<charT, traits, Allocator>& x,
16 //             basic_stringbuf<charT, traits, Allocator>& y);
17 
18 #include <sstream>
19 #include <cassert>
20 
21 #include "test_macros.h"
22 
main(int,char **)23 int main(int, char**)
24 {
25     {
26         std::stringbuf buf1("testing");
27         std::stringbuf buf;
28         swap(buf, buf1);
29         assert(buf.str() == "testing");
30         assert(buf1.str() == "");
31     }
32     {
33         std::stringbuf buf1("testing", std::ios_base::in);
34         std::stringbuf buf;
35         swap(buf, buf1);
36         assert(buf.str() == "testing");
37         assert(buf1.str() == "");
38     }
39     {
40         std::stringbuf buf1("testing", std::ios_base::out);
41         std::stringbuf buf;
42         swap(buf, buf1);
43         assert(buf.str() == "testing");
44         assert(buf1.str() == "");
45     }
46 #ifndef TEST_HAS_NO_WIDE_CHARACTERS
47     {
48         std::wstringbuf buf1(L"testing");
49         std::wstringbuf buf;
50         swap(buf, buf1);
51         assert(buf.str() == L"testing");
52         assert(buf1.str() == L"");
53     }
54     {
55         std::wstringbuf buf1(L"testing", std::ios_base::in);
56         std::wstringbuf buf;
57         swap(buf, buf1);
58         assert(buf.str() == L"testing");
59         assert(buf1.str() == L"");
60     }
61     {
62         std::wstringbuf buf1(L"testing", std::ios_base::out);
63         std::wstringbuf buf;
64         swap(buf, buf1);
65         assert(buf.str() == L"testing");
66         assert(buf1.str() == L"");
67     }
68 #endif // TEST_HAS_NO_WIDE_CHARACTERS
69 
70   return 0;
71 }
72