1b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===// 2b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 3b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// The LLVM Compiler Infrastructure 4b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 5b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// This file is dual licensed under the MIT and the University of Illinois Open 6b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// Source Licenses. See LICENSE.TXT for details. 7b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 8b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===// 9b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 10b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// <streambuf> 11b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 12b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// template <class charT, class traits = char_traits<charT> > 13b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// class basic_streambuf; 14b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 15b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// streamsize xsputn(const char_type* s, streamsize n); 16b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 17b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <streambuf> 18b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <cassert> 19b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 20b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerstruct test 21b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : public std::basic_streambuf<char> 22b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 23b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef std::basic_streambuf<char> base; 24b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 25b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner test() {} 26b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 27b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner void setp(char* pbeg, char* pend) 28b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 29b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner base::setp(pbeg, pend); 30b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 31b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}; 32b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 33b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerint main() 34b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 35b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 36b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner test t; 37b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner char in[] = "123456"; 38b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(t.sputn(in, sizeof(in)) == 0); 39b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner char out[sizeof(in)] = {0}; 40b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner t.setp(out, out+sizeof(out)); 41b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(t.sputn(in, sizeof(in)) == sizeof(in)); 42b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(strcmp(in, out) == 0); 43b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 44b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner} 45