blob: eeb70e1c3739eb13f6d1bad6758221695865f93c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
// Build don't link:
// GROUPS passed old-abort
/*
I received the following message when using g++ (version 2.3.3):
main.cc: In method 'Implicit<implicit<INTEGER,2>,3>::Implicit()':
main.cc: Internal compiler error 241.
main.cc: Please report this to 'bug-g++@prep.ai.mit.edu'
*/
#include <stream.h>
class INTEGER {
int x;
public:
typedef int BASE;
INTEGER(int y) : x(y) {}
INTEGER() {}
void encode() { cout << "Integer encoder";}
int operator=(int y) { x=y; return x; }
operator int() {return x; }
};
template< class T, int n> class Implicit : public T {
public:
typedef typename T::BASE BASE;
Implicit(BASE value ): T(value) {};
Implicit() : T() {};
int myTag() { return n; }
void encode() { T::encode(); }
BASE operator=(BASE t) { return T::operator=(t); }
};
int
main()
{
Implicit<Implicit<INTEGER, 2> , 3> y;
y = 10;
};
|