// 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>();


syntax highlighted by Code2HTML, v. 0.9.1