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)14void R (T v) 15 { 16 v[(S() + 0).template value<int>()][0] = 0; 17 } 18 19 int main()20main () 21 { 22 R(V<V<int> >()); 23 } 24