1 2 3 4 5 6 7 8 9 10 11 12 13 14
// PR c++/16870 struct A { int operator[](int) const; }; template<int> A foo(); A bar(A(*)()); template<int> int baz() { return (bar(&foo<0>))[0]; } template int baz<0>();