libcxx

libcxx mirror with random patches
git clone https://git.neptards.moe/neptards/libcxx.git
Log | Files | Refs

streambuf.pass.cpp (1420B)


      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 // <iterator>
     11 
     12 // istreambuf_iterator
     13 
     14 // istreambuf_iterator(basic_streambuf<charT,traits>* s) throw();
     15 
     16 #include <iterator>
     17 #include <sstream>
     18 #include <cassert>
     19 
     20 int main()
     21 {
     22     {
     23         std::istreambuf_iterator<char> i(nullptr);
     24         assert(i == std::istreambuf_iterator<char>());
     25     }
     26     {
     27         std::istringstream inf;
     28         std::istreambuf_iterator<char> i(inf.rdbuf());
     29         assert(i == std::istreambuf_iterator<char>());
     30     }
     31     {
     32         std::istringstream inf("a");
     33         std::istreambuf_iterator<char> i(inf.rdbuf());
     34         assert(i != std::istreambuf_iterator<char>());
     35     }
     36     {
     37         std::istreambuf_iterator<wchar_t> i(nullptr);
     38         assert(i == std::istreambuf_iterator<wchar_t>());
     39     }
     40     {
     41         std::wistringstream inf;
     42         std::istreambuf_iterator<wchar_t> i(inf.rdbuf());
     43         assert(i == std::istreambuf_iterator<wchar_t>());
     44     }
     45     {
     46         std::wistringstream inf(L"a");
     47         std::istreambuf_iterator<wchar_t> i(inf.rdbuf());
     48         assert(i != std::istreambuf_iterator<wchar_t>());
     49     }
     50 }