]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/testsuite/g++.old-deja/g++.jason/template36.C
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / testsuite / g++.old-deja / g++.jason / template36.C
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template36.C b/gcc/testsuite/g++.old-deja/g++.jason/template36.C
deleted file mode 100644 (file)
index 04d3160..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-// Testcase for implicit 'typename' and resolution of 'typename's in the
-// current scope.
-
-class base1 { 
-public:
-    int bar() const
-    { return 1; }
-};
-
-class base2 { 
-public:
-    int bar() const
-    { return 0; }
-};
-
-template<class X>
-struct base_trait {
-    typedef base1 base;
-};
-
-template<>
-struct base_trait<float> {
-    typedef base2 base;
-};
-
-template<class T>
-class weird : public base_trait<T>::base {
-public:
-    typedef typename base_trait<T>::base base;
-
-    base f ();
-    int base::* g ();
-
-    int zowee() const
-    { return bar(); }  
-};
-
-template <class T>
-typename weird<T>::base weird<T>::f ()
-{
-    return base();
-}
-
-// The standard does not allow this case; the `typename' keyword may
-// not appear in a ptr-operator.
-#if 0
-template <class T>
-int typename weird<T>::base::* weird<T>::g ()
-{ return 0; }
-#endif
-
-int main()
-{
-    weird<float> z;
-    return z.zowee() || z.f().bar();
-}