OSDN Git Service

* parser.c (cp_parser_class_specifier): Set class location to that
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.jason / conversion6.C
1 // { dg-do run  }
2 // PRMS Id: g++/6034
3
4 extern "C" int printf (const char *, ...);
5
6 class Base
7 {
8         char x;
9 };
10
11 template <class T>
12 // remove the public Base inheritance and the problem goes away...
13 class Container : public Base
14 {
15 public:
16
17     Container(const T& aValue): myValue(aValue) { }
18     
19     operator const T&(void) const
20     {
21         printf("Container::const T& called\n");
22         return myValue;
23     }
24     
25 protected:
26
27     T myValue;
28 };
29
30 typedef unsigned short Type;
31
32 typedef Container<Type> TypeContainer;
33
34 int main(void)
35 {
36     TypeContainer myTypeContainer(2);
37     Type t = myTypeContainer;
38
39     printf ("myType = %d\n", t);
40     return t != 2;
41 }