diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.jason/tpt-1.cc')
-rwxr-xr-x | gcc/testsuite/g++.old-deja/g++.jason/tpt-1.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tpt-1.cc b/gcc/testsuite/g++.old-deja/g++.jason/tpt-1.cc new file mode 100755 index 0000000..1509520 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.jason/tpt-1.cc @@ -0,0 +1,30 @@ +// 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; } +}; + +main() +{ + A<int, 5> a; + B<int, 5> b(a); + + if (b * a == 500) + return 0; + else + return 1; +} |