12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//===----------------------------------------------------------------------===// 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// The LLVM Compiler Infrastructure 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// 590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open 690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Source Licenses. See LICENSE.TXT for details. 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// 8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)//===----------------------------------------------------------------------===// 990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// <istream> 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// template <class charT, class traits = char_traits<charT> > 1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// class basic_istream; 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// explicit basic_istream(basic_streambuf<charT,traits>* sb); 1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <istream> 18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include <cassert> 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)template <class CharT> 2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)struct testbuf 2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) : public std::basic_streambuf<CharT> 2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles){ 2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) testbuf() {} 2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}; 2690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int main() 28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles){ 29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) { 30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) testbuf<char> sb; 31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) std::basic_istream<char> is(&sb); 32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) assert(is.rdbuf() == &sb); 33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) assert(is.tie() == 0); 34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) assert(is.fill() == ' '); 3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) assert(is.rdstate() == is.goodbit); 360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert(is.exceptions() == is.goodbit); 370529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert(is.flags() == (is.skipws | is.dec)); 380529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert(is.precision() == 6); 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(is.getloc().name() == "C"); 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(is.gcount() == 0); 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 4390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) testbuf<wchar_t> sb; 44 std::basic_istream<wchar_t> is(&sb); 45 assert(is.rdbuf() == &sb); 46 assert(is.tie() == 0); 47 assert(is.fill() == L' '); 48 assert(is.rdstate() == is.goodbit); 49 assert(is.exceptions() == is.goodbit); 50 assert(is.flags() == (is.skipws | is.dec)); 51 assert(is.precision() == 6); 52 assert(is.getloc().name() == "C"); 53 assert(is.gcount() == 0); 54 } 55} 56