15a83710eSEric Fiselier //===----------------------------------------------------------------------===// 25a83710eSEric Fiselier // 35a83710eSEric Fiselier // The LLVM Compiler Infrastructure 45a83710eSEric Fiselier // 55a83710eSEric Fiselier // This file is dual licensed under the MIT and the University of Illinois Open 65a83710eSEric Fiselier // Source Licenses. See LICENSE.TXT for details. 75a83710eSEric Fiselier // 85a83710eSEric Fiselier //===----------------------------------------------------------------------===// 95a83710eSEric Fiselier 105a83710eSEric Fiselier // <sstream> 115a83710eSEric Fiselier 125a83710eSEric Fiselier // template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> > 135a83710eSEric Fiselier // class basic_stringbuf 145a83710eSEric Fiselier 155a83710eSEric Fiselier // explicit basic_stringbuf(ios_base::openmode which = ios_base::in | ios_base::out); 165a83710eSEric Fiselier 175a83710eSEric Fiselier #include <sstream> 185a83710eSEric Fiselier #include <cassert> 195a83710eSEric Fiselier 20*378ae52bSZhihao Yuan template<typename CharT> 21*378ae52bSZhihao Yuan struct testbuf 22*378ae52bSZhihao Yuan : std::basic_stringbuf<CharT> 23*378ae52bSZhihao Yuan { 24*378ae52bSZhihao Yuan void check() 25*378ae52bSZhihao Yuan { 26*378ae52bSZhihao Yuan assert(this->eback() == NULL); 27*378ae52bSZhihao Yuan assert(this->gptr() == NULL); 28*378ae52bSZhihao Yuan assert(this->egptr() == NULL); 29*378ae52bSZhihao Yuan assert(this->pbase() == NULL); 30*378ae52bSZhihao Yuan assert(this->pptr() == NULL); 31*378ae52bSZhihao Yuan assert(this->epptr() == NULL); 32*378ae52bSZhihao Yuan } 33*378ae52bSZhihao Yuan }; 34*378ae52bSZhihao Yuan 355a83710eSEric Fiselier int main() 365a83710eSEric Fiselier { 375a83710eSEric Fiselier { 385a83710eSEric Fiselier std::stringbuf buf; 395a83710eSEric Fiselier assert(buf.str() == ""); 405a83710eSEric Fiselier } 415a83710eSEric Fiselier { 425a83710eSEric Fiselier std::wstringbuf buf; 435a83710eSEric Fiselier assert(buf.str() == L""); 445a83710eSEric Fiselier } 45*378ae52bSZhihao Yuan { 46*378ae52bSZhihao Yuan testbuf<char> buf; 47*378ae52bSZhihao Yuan buf.check(); 48*378ae52bSZhihao Yuan } 49*378ae52bSZhihao Yuan { 50*378ae52bSZhihao Yuan testbuf<wchar_t> buf; 51*378ae52bSZhihao Yuan buf.check(); 52*378ae52bSZhihao Yuan } 535a83710eSEric Fiselier } 54