rdbuf_streambuf.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <ios>
11
12// template <class charT, class traits> class basic_ios
13
14// basic_streambuf<charT,traits>* rdbuf(basic_streambuf<charT,traits>* sb);
15
16#include <ios>
17#include <streambuf>
18#include <cassert>
19
20int main()
21{
22    std::ios ios(0);
23    assert(ios.rdbuf() == 0);
24    assert(!ios.good());
25    std::streambuf* sb = (std::streambuf*)1;
26    std::streambuf* sb2 = ios.rdbuf(sb);
27    assert(sb2 == 0);
28    assert(ios.rdbuf() == sb);
29    assert(ios.good());
30    sb2 = ios.rdbuf(0);
31    assert(sb2 == (std::streambuf*)1);
32    assert(ios.rdbuf() == 0);
33    assert(ios.bad());
34}
35