我想弄清楚如何将操纵器传递std::endl
给函数,然后在函数中使用传入的操纵器。我可以这样声明函数:
void f(std::ostream&(*pManip)(std::ostream&));
我可以这样称呼它:
f(std::endl);
没关系。我的问题是弄清楚如何使用里面的机械手f
。这不起作用:
void f(std::ostream&(*pManip)(std::ostream&))
{
std::cout << (*pManip)(std::cout); // error
}
无论编译器如何,错误消息归结为编译器无法确定operator<<
调用哪个。我需要在内部修复什么f
才能编译我的代码?