OSDN Git Service

PR c++/4872
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.law / missed-error3.C
1 // Build don't link: 
2 // GROUPS passed missed-error
3 // missed-error file
4 // From: Neil Wilson <csf004@cch.coventry.ac.uk>
5 // Date:     Tue, 28 Apr 92 13:53:54 WET DST
6 // Subject:  g++ version 2.1 bugs
7 // Message-ID: <15717.9204281253@cch.coventry.ac.uk>
8
9
10 // enum bool { FALSE = 0, TRUE = 1 };
11
12 typedef int T;
13
14 class Traversable {
15 public:
16     virtual const T item() const = 0;
17     virtual const bool off() const = 0;
18     virtual ~Traversable() { };
19 };
20
21 class Chain : public Traversable {
22 public:
23     virtual const int count() const = 0;
24     virtual const bool empty() const = 0;
25     virtual void forth() const = 0;
26     virtual const bool isfirst() const = 0;
27     virtual const bool islast() const = 0;
28     virtual const int position() const = 0;
29     virtual const T first() const = 0;
30     virtual const T last() const = 0;
31     virtual const T i_th(const int index) const = 0;
32     virtual void start() const = 0;
33     virtual void back() const = 0;
34     virtual void finish() const = 0;
35     virtual void move(const int index) const = 0;
36     virtual void go(const int index) const = 0;
37     virtual void put(const T value) = 0;
38     virtual void put_i_th(const T value, const int index) = 0;
39     virtual void swap(const int index) = 0;
40     virtual void wipe_out() = 0;
41 };
42 class List : public Chain {
43 protected:
44     int item_count;
45     int cursor_position;
46     virtual void go_offleft() const = 0;
47     virtual void go_offright() const = 0;
48     virtual void copy(const List& other) = 0;
49 public:
50     List() : item_count(0), cursor_position(0) { };
51     virtual const int count() const;
52     virtual const bool empty() const;
53     virtual const bool isfirst() const;
54     virtual const bool islast() const;
55     virtual const bool offleft() const;
56     virtual const bool offright() const;
57     virtual const bool off() const;
58     virtual const int position() const;
59     virtual const T first() const;
60     virtual const T last() const;
61     virtual const T i_th(const int index) const;
62     virtual void start() const;
63     virtual void forth() const;
64     virtual void back() const;
65     virtual void finish() const;
66     virtual void move(const int index) const;
67     virtual void go(const int index) const;
68     friend const bool operator==(const List& left,
69         const List& right);
70     friend const bool operator!=(const List& left,
71         const List& right);
72     virtual void put_i_th(const T value, const int index);
73     virtual void swap(const int index);
74 };
75 typedef int T;
76 class Array {
77 private:
78     int lower_index;
79     int upper_index;
80     T *array;
81 protected:
82     virtual void allocate(const int minindex, const int maxindex);
83     virtual void copy(const Array&other);
84 public:
85     Array(const int minindex, const int maxindex);
86     Array(const Array& other);
87     virtual const int count() const;
88     virtual const int lower() const;
89     virtual const int upper() const;
90     virtual const T item(const int index) const;
91       const T Array::operator[](const int index); // ERROR - qualification ignored
92     virtual const bool valid_index(const int index) const;
93     virtual const bool empty() const;
94     friend const bool operator==(const Array& left, const Array& right);
95     friend const bool operator!=(const Array& left, const Array& right);
96     virtual void put(const T value, const int index);
97     virtual void wipe_out();
98     Array& operator=(const Array& other);
99     virtual ~Array();
100 };
101 class Fixed_List: public List, private Array {
102 protected:
103     virtual void go_offleft() const;
104     virtual void go_offright() const;
105     virtual void copy(const List& other);
106 public:
107     Fixed_List(const List& other);
108     Fixed_List(const int size): Array(1, size) { };
109     virtual const bool empty() const;
110     virtual const int count() const;
111     virtual const T item() const;
112     virtual const T i_th(const int index) const;
113     virtual void move(const int index) const;
114     virtual void put(const T value);
115     virtual void put_i_th(const T value, const int index);
116     virtual void wipe_out() { };
117     Fixed_List& operator=(const List& other);
118 };
119
120 void Fixed_List::go_offleft() const
121 {
122     cursor_position = 0;// ERROR - 
123 };
124