72 lines · cpp
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-exception6//7//===----------------------------------------------------------------------===//8 9// <sstream>10 11// template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >12// class basic_stringbuf13 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 23int 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_CHARACTERS47 {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_CHARACTERS69 70 return 0;71}72