1748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat//===----------------------------------------------------------------------===//
2748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat//
3748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat//                     The LLVM Compiler Infrastructure
4748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat//
5748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat// This file is dual licensed under the MIT and the University of Illinois Open
6748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat// Source Licenses. See LICENSE.TXT for details.
7748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat//
8748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat//===----------------------------------------------------------------------===//
9748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat
10748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat// <iterator>
11748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat
12748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat// istreambuf_iterator
13748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat
14748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat// istreambuf_iterator<charT,traits>&
15748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat//   istreambuf_iterator<charT,traits>::operator++();
16748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat
17748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat#include <iterator>
18748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat#include <sstream>
19748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat#include <cassert>
20748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat
21748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Eratint main()
22748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat{
23748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat    {
24748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        std::istringstream inf("abc");
25748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        std::istreambuf_iterator<char> i(inf);
26748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        assert(*i == 'a');
27748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        assert(*++i == 'b');
28748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        assert(*++i == 'c');
29748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        assert(++i == std::istreambuf_iterator<char>());
30748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat    }
31748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat    {
32748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        std::wistringstream inf(L"abc");
33748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        std::istreambuf_iterator<wchar_t> i(inf);
34748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        assert(*i == L'a');
35748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        assert(*++i == L'b');
36748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        assert(*++i == L'c');
37748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat        assert(++i == std::istreambuf_iterator<wchar_t>());
38748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat    }
39748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat}
40748945ec6f1c67b7efc934ab0808e1d32f2fb98dDaniel Erat