• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  //===----------------------------------------------------------------------===//
2  //
3  //                     The LLVM Compiler Infrastructure
4  //
5  // This file is dual licensed under the MIT and the University of Illinois Open
6  // Source Licenses. See LICENSE.TXT for details.
7  //
8  //===----------------------------------------------------------------------===//
9  
10  // <sstream>
11  
12  // template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
13  // class basic_stringstream
14  
15  // basic_stringstream(basic_stringstream&& rhs);
16  
17  #include <sstream>
18  #include <cassert>
19  
main()20  int main()
21  {
22  #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
23      {
24          std::stringstream ss0(" 123 456 ");
25          std::stringstream ss(std::move(ss0));
26          assert(ss.rdbuf() != 0);
27          assert(ss.good());
28          assert(ss.str() == " 123 456 ");
29          int i = 0;
30          ss >> i;
31          assert(i == 123);
32          ss >> i;
33          assert(i == 456);
34          ss << i << ' ' << 123;
35          assert(ss.str() == "456 1236 ");
36      }
37      {
38          std::wstringstream ss0(L" 123 456 ");
39          std::wstringstream ss(std::move(ss0));
40          assert(ss.rdbuf() != 0);
41          assert(ss.good());
42          assert(ss.str() == L" 123 456 ");
43          int i = 0;
44          ss >> i;
45          assert(i == 123);
46          ss >> i;
47          assert(i == 456);
48          ss << i << ' ' << 123;
49          assert(ss.str() == L"456 1236 ");
50      }
51  #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
52  }
53