Home | History | Annotate | Download | only in streambuf.pub.get
      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 // <streambuf>
     11 
     12 // template <class charT, class traits = char_traits<charT> >
     13 // class basic_streambuf;
     14 
     15 // streamsize sgetn(char_type* s, streamsize n);
     16 
     17 #include <streambuf>
     18 #include <cassert>
     19 
     20 int xsgetn_called = 0;
     21 
     22 struct test
     23     : public std::basic_streambuf<char>
     24 {
     25     test() {}
     26 
     27 protected:
     28     std::streamsize xsgetn(char_type*, std::streamsize)
     29     {
     30         ++xsgetn_called;
     31         return 10;
     32     }
     33 };
     34 
     35 int main()
     36 {
     37     test t;
     38     assert(xsgetn_called == 0);
     39     assert(t.sgetn(0, 0) == 10);
     40     assert(xsgetn_called == 1);
     41 }
     42