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