1 // { dg-do compile }
2 
3 template <typename T>
4 struct V {
5   T& operator[](int);
6 };
7 
8 struct S {
9   S operator +(int);
10   template <typename T> T value();
11 };
12 
13 template <typename T>
R(T v)14 void R (T v)
15 {
16   v[(S() + 0).template value<int>()][0] = 0;
17 }
18 
19 int
main()20 main ()
21 {
22   R(V<V<int> >());
23 }
24