move.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
13a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org//===----------------------------------------------------------------------===// 23a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// 33a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// The LLVM Compiler Infrastructure 43a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// 53a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// This file is distributed under the University of Illinois Open Source 63a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// License. See LICENSE.TXT for details. 73a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// 83a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org//===----------------------------------------------------------------------===// 93a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// <sstream> 113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> > 133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// class basic_ostringstream 143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// basic_ostringstream& operator=(basic_ostringstream&& rhs); 163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#include <sstream> 183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#include <cassert> 193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgint main() 213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org{ 223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#ifdef _LIBCPP_MOVE 233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org { 243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org std::ostringstream ss0(" 123 456"); 253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org std::ostringstream ss; 263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ss = std::move(ss0); 273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org assert(ss.rdbuf() != 0); 283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org assert(ss.good()); 293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org assert(ss.str() == " 123 456"); 303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org int i = 234; 313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ss << i << ' ' << 567;; 323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org assert(ss.str() == "234 5676"); 333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org } 343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org { 353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org std::wostringstream ss0(L" 123 456"); 363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org std::wostringstream ss; 373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ss = std::move(ss0); 383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org assert(ss.rdbuf() != 0); 393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org assert(ss.good()); 403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org assert(ss.str() == L" 123 456"); 413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org int i = 234; 423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ss << i << ' ' << 567;; 433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org assert(ss.str() == L"234 5676"); 443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org } 453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#endif 463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org} 473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org