【发布时间】:2021-11-26 05:38:09
【问题描述】:
我正在尝试为一组数据实现参数化流操纵器。我按照推荐的简单方法来做:
class print_my_data
{
private:
. . .
public:
print_my_data(. . .) { . . . }
ostream& operator()(std::ostream& out)
{
return out << . . . << endl;
}
};
ostream& operator<<(ostream& out, print_my_data md) // <=== MY QUESTION BELOW IS ABOUT THIS
{
return md(out);
}
用法:
clog << print_my_data(. . .) << endl;
这很好用;但我真的不明白为什么它不起作用,除非我定义operator<<!为什么它不调用与endl 相同的重载函数? (即作为可以通过operator()应用于流的对象)
【问题讨论】:
标签: c++ iostream manipulators