Мне кажется, проблема в том, что std::endl
является функцией шаблона, и компилятор не может вывести аргумент шаблона для функции ignore
.
template <class charT, class traits>
basic_ostream<charT,traits>& endl ( basic_ostream<charT,traits>& os );
Чтобы исправить проблему, вы можете написать что-то вроде следующего:
void f() {
ignore(std::endl<char, std::char_traits<char>>);
}
Но вы должны знать, что вы передадите указатель на функцию в качестве аргумента, а не результат выполнения функции.