diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.pt/parms1.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/parms1.C | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/parms1.C b/gcc/testsuite/g++.old-deja/g++.pt/parms1.C new file mode 100644 index 000000000..b8a5dda1c --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/parms1.C @@ -0,0 +1,32 @@ +// { dg-do run } +// Testcase for use of template parms as types for other template parms. + +template <class T, T t> +class A { + T a; +public: + A(): a(t) {} + + operator T () { return a; } +}; + +template <class S, S s> +class B { + A<S,s> a; +public: + B(A<S,s>& b): a(b) {} + + operator S () { return a*20; } +}; + +int +main() +{ + A<int, 5> a; + B<int, 5> b(a); + + if (b * a == 500) + return 0; + else + return 1; +} |