summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.pt/parms2.C
blob: 673427e6cb441fcece8b5e11cbdafd84280e2094 (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
// { dg-do assemble  }
// 
// Copyright (C) 2000 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 5 Sept 2000 <nathan@codesourcery.com>

// bug 73. We failed to compare explicit arguments for a TEMPLATE_ID_EXPR in a
// TYPENAME_TYPE.

struct Plus {
  template <class T>
  struct Sig { typedef int Third;};
};


template <class T>
struct Ethel {
  typedef int WrappedType;
};

struct Fred {
   
  template <class Q, class LA, class LB>
  Ethel<typename Q::template Sig<typename LA::WrappedType>::Third> baz ();


  template <class Z, class A, class B>
  Ethel<typename Z::template Sig<A>::Third>
  foo ( const Z&, const Ethel<A>&, const Ethel<B>&) const;
};

int main() {
  Fred f;
  Ethel<int> e;
  Plus p;
 
  f.foo (p, e, e);

  return 0;
}