1710632d07b13609444626367bebd34c0af3acb6aMikhail Glushenkov//===----------------------------------------------------------------------===//
26091ebd172a16a10f1ea66061a5fa7cbf5139e56Reid Spencer//
36091ebd172a16a10f1ea66061a5fa7cbf5139e56Reid Spencer//                     The LLVM Compiler Infrastructure
46091ebd172a16a10f1ea66061a5fa7cbf5139e56Reid Spencer//
57ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner// This file is dual licensed under the MIT and the University of Illinois Open
67ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner// Source Licenses. See LICENSE.TXT for details.
76091ebd172a16a10f1ea66061a5fa7cbf5139e56Reid Spencer//
86091ebd172a16a10f1ea66061a5fa7cbf5139e56Reid Spencer//===----------------------------------------------------------------------===//
927107f6ab4627fa38bcacad6757ed6d52910f880Bill Wendling
1027107f6ab4627fa38bcacad6757ed6d52910f880Bill Wendling// <sstream>
1127107f6ab4627fa38bcacad6757ed6d52910f880Bill Wendling
1227107f6ab4627fa38bcacad6757ed6d52910f880Bill Wendling// template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
1327107f6ab4627fa38bcacad6757ed6d52910f880Bill Wendling// class basic_stringbuf
146091ebd172a16a10f1ea66061a5fa7cbf5139e56Reid Spencer
156091ebd172a16a10f1ea66061a5fa7cbf5139e56Reid Spencer// void swap(basic_stringbuf& rhs);
16674be02d525d4e24bc6943ed9274958c580bcfbcJakub Staszak
17674be02d525d4e24bc6943ed9274958c580bcfbcJakub Staszak#include <sstream>
186091ebd172a16a10f1ea66061a5fa7cbf5139e56Reid Spencer#include <cassert>
19d509d0b532ec2358b3f341d4a4cd1411cb8b5db2Chris Lattner
200319888773b36dd61d7d2283cb9a26cac1e5abe8Bill Wendlingint main()
2122bd64173981bf1251c4b3bfc684207340534ba3Bill Wendling{
2222bd64173981bf1251c4b3bfc684207340534ba3Bill Wendling    {
2358d74910c6b82e622ecbb57d6644d48fec5a5c0fChris Lattner        std::stringbuf buf1("testing");
246091ebd172a16a10f1ea66061a5fa7cbf5139e56Reid Spencer        std::stringbuf buf;
256091ebd172a16a10f1ea66061a5fa7cbf5139e56Reid Spencer        buf.swap(buf1);
26d426a642a23a234547cbc7061f5bfec157673249Bill Wendling        assert(buf.str() == "testing");
27702cc91aa1bd41540e8674921ae7ac89a4ff061fBill Wendling        assert(buf1.str() == "");
28f6670729aabc1fab85238d2b306a1c1767a807bbBill Wendling    }
29a90a99a82b9c5c39fc6dbee9c266dcd7b107fe2fBill Wendling    {
302c79ecbd704c656178ffa43d5a58ebe3ca188b40Bill Wendling        std::stringbuf buf1("testing", std::ios_base::in);
31ad9a9e15595bc9d5ba1ed752caf8572957f77a3dDuncan Sands        std::stringbuf buf;
32ad9a9e15595bc9d5ba1ed752caf8572957f77a3dDuncan Sands        buf.swap(buf1);
331d3dcfe4246b4d45fa78a8dfd0a11c7fff842c15Bill Wendling        assert(buf.str() == "testing");
3427107f6ab4627fa38bcacad6757ed6d52910f880Bill Wendling        assert(buf1.str() == "");
3527107f6ab4627fa38bcacad6757ed6d52910f880Bill Wendling    }
361d3dcfe4246b4d45fa78a8dfd0a11c7fff842c15Bill Wendling    {
371d3dcfe4246b4d45fa78a8dfd0a11c7fff842c15Bill Wendling        std::stringbuf buf1("testing", std::ios_base::out);
381d3dcfe4246b4d45fa78a8dfd0a11c7fff842c15Bill Wendling        std::stringbuf buf;
39034b94b17006f51722886b0f2283fb6fb19aca1fBill Wendling        buf.swap(buf1);
406765834754cbb3cb0f15b4b15e98c5e73fa50066Bill Wendling        assert(buf.str() == "testing");
411d3dcfe4246b4d45fa78a8dfd0a11c7fff842c15Bill Wendling        assert(buf1.str() == "");
421d3dcfe4246b4d45fa78a8dfd0a11c7fff842c15Bill Wendling    }
43f3d1500ab2c7364d3d0fb73a7e1b8c6339ab48b1Bill Wendling    {
441d3dcfe4246b4d45fa78a8dfd0a11c7fff842c15Bill Wendling        std::wstringbuf buf1(L"testing");
4511d00420e42ba88c3b48cab997965a7be79315e2Bill Wendling        std::wstringbuf buf;
4611d00420e42ba88c3b48cab997965a7be79315e2Bill Wendling        buf.swap(buf1);
47f3d1500ab2c7364d3d0fb73a7e1b8c6339ab48b1Bill Wendling        assert(buf.str() == L"testing");
4811d00420e42ba88c3b48cab997965a7be79315e2Bill Wendling        assert(buf1.str() == L"");
4911d00420e42ba88c3b48cab997965a7be79315e2Bill Wendling    }
5011d00420e42ba88c3b48cab997965a7be79315e2Bill Wendling    {
51f3d1500ab2c7364d3d0fb73a7e1b8c6339ab48b1Bill Wendling        std::wstringbuf buf1(L"testing", std::ios_base::in);
5211d00420e42ba88c3b48cab997965a7be79315e2Bill Wendling        std::wstringbuf buf;
5311d00420e42ba88c3b48cab997965a7be79315e2Bill Wendling        buf.swap(buf1);
5411d00420e42ba88c3b48cab997965a7be79315e2Bill Wendling        assert(buf.str() == L"testing");
5511d00420e42ba88c3b48cab997965a7be79315e2Bill Wendling        assert(buf1.str() == L"");
5611d00420e42ba88c3b48cab997965a7be79315e2Bill Wendling    }
5711d00420e42ba88c3b48cab997965a7be79315e2Bill Wendling    {
58629fb82419d9bfff6ae475363bcce66192dfcc8eBill Wendling        std::wstringbuf buf1(L"testing", std::ios_base::out);
595a0eeb5a9d727940b1dbe8dff6e9aa292ada0f6aBill Wendling        std::wstringbuf buf;
60480b1b28ea6fc1bb5c78d99472df624cfd3fce47Bill Wendling        buf.swap(buf1);
61480b1b28ea6fc1bb5c78d99472df624cfd3fce47Bill Wendling        assert(buf.str() == L"testing");
62480b1b28ea6fc1bb5c78d99472df624cfd3fce47Bill Wendling        assert(buf1.str() == L"");
636765834754cbb3cb0f15b4b15e98c5e73fa50066Bill Wendling    }
64f6670729aabc1fab85238d2b306a1c1767a807bbBill Wendling}
65480b1b28ea6fc1bb5c78d99472df624cfd3fce47Bill Wendling