sputn.pass.cpp revision bc8d3f97eb5c958007f2713238472e0c1c8fe02c
15f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer//===----------------------------------------------------------------------===//
25f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer//
35f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer// ��������������������The LLVM Compiler Infrastructure
45f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer//
50bc735ffcfb223c0186419547abaa5c84482663eChris Lattner// This file is distributed under the University of Illinois Open Source
60bc735ffcfb223c0186419547abaa5c84482663eChris Lattner// License. See LICENSE.TXT for details.
75f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer//
85f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer//===----------------------------------------------------------------------===//
95f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
105f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer// <streambuf>
115f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
125f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer// template <class charT, class traits = char_traits<charT> >
135f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer// class basic_streambuf;
145f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
155f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer// streamsize sputn(const char_type* s, streamsize n);
165f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
17182745ae7892bca0842d9c023370ade5f8d1c6e8Chris Lattner#include <streambuf>
18182745ae7892bca0842d9c023370ade5f8d1c6e8Chris Lattner#include <cassert>
195f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
205f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerint xsputn_called = 0;
21182745ae7892bca0842d9c023370ade5f8d1c6e8Chris Lattner
22182745ae7892bca0842d9c023370ade5f8d1c6e8Chris Lattnerstruct test
23182745ae7892bca0842d9c023370ade5f8d1c6e8Chris Lattner    : public std::basic_streambuf<char>
24182745ae7892bca0842d9c023370ade5f8d1c6e8Chris Lattner{
255f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer    test() {}
265f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
275f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerprotected:
285f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer    std::streamsize xsputn(const char_type* s, std::streamsize n)
295f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer    {
305f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer        ++xsputn_called;
315f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer        return 5;
325f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer    }
335f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer};
345f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
355f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerint main()
365f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer{
375f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer    test t;
385f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer    assert(xsputn_called == 0);
395f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer    assert(t.sputn(0, 0) == 5);
405f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer    assert(xsputn_called == 1);
415f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer}
425f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer