1 typedef char muchar;
2
3 struct Range {
RangeRange4 Range (int b, int e): begin(b), end(end) {}
5 int begin, end;
6 };
7
8 class Char {
9 public:
Char(char i=0)10 Char (char i = 0): val(i), r(i, i) {}
11
operator volatile muchar() const12 operator volatile muchar() const { return val; }
operator volatile const muchar*() const13 operator volatile const muchar*() const { return 0; }
operator volatile const muchar*const() const14 operator volatile const muchar*const() const { return 0; }
operator volatile int*() const15 operator volatile int *() const { return 0; }
operator volatile int*volatile() const16 operator volatile int *volatile() const { return 0; }
operator int*volatile() const17 operator int *volatile() const { return 0; }
operator volatile const int*() const18 operator volatile const int *() const { return 0; }
operator volatile const int*volatile() const19 operator volatile const int *volatile() const { return 0; }
operator int*volatile const() const20 operator int *volatile const() const { return 0; }
21
operator volatile const int*()22 operator volatile const int *() volatile { return 0; }
operator volatile const int*volatile()23 operator volatile const int *volatile() volatile { return 0; }
operator int*volatile const()24 operator int *volatile const() volatile { return 0; }
25
operator volatile struct Range*() const26 operator volatile struct Range *() const { return 0; }
operator volatile struct Range*volatile() const27 operator volatile struct Range *volatile() const { return 0; }
operator struct Range*volatile() const28 operator struct Range *volatile() const { return 0; }
29
operator volatile const struct Range*() const30 operator volatile const struct Range *() const { return 0; }
operator volatile const struct Range*volatile() const31 operator volatile const struct Range *volatile() const { return 0; }
operator struct Range*volatile const() const32 operator struct Range *volatile const() const { return 0; }
33
operator volatile const struct Range*()34 operator volatile const struct Range *() volatile { return 0; }
operator volatile const struct Range*volatile()35 operator volatile const struct Range *volatile() volatile { return 0; }
operator struct Range*volatile const()36 operator struct Range *volatile const() volatile { return 0; }
37
38 private:
39 int val;
40 struct Range r;
41 };
42
main(void)43 int main(void)
44 {
45 return Char ();
46 }
47