iword.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <ios>
11
12// class ios_base
13
14// long& iword(int idx);
15
16#include <ios>
17#include <string>
18#include <cassert>
19
20class test
21    : public std::ios
22{
23public:
24    test()
25    {
26        init(0);
27    }
28};
29
30int main()
31{
32    test t;
33    std::ios_base& b = t;
34    for (int i = 0; i < 10000; ++i)
35    {
36        assert(b.iword(i) == 0);
37        b.iword(i) = i;
38        assert(b.iword(i) == i);
39        for (int j = 0; j <= i; ++j)
40            assert(b.iword(j) == j);
41    }
42}
43