| // { 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; | |
| } |