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