1// { dg-do assemble } 2 3template <class InputIterator, class BinaryOperation> 4void accumulate(InputIterator first, 5 BinaryOperation binary_op) { 6} 7 8 9template<class R> int p( int val, R& r ) 10{ 11 return val + r; 12} 13 14template<class R> void f(R) 15{ 16 accumulate(0, static_cast<int (*)(int, R&)>(p) ); 17} 18 19int main() 20{ 21 f(0); 22} 23