重载流操纵器运算符

overloading stream manipulator operator

嗨,我正在尝试重载运算符<<以挂接到

stream << std::endl;

避免在不需要输出时附加'\n'。 我已经超载了:

std::ostream& operator<< (std::ostream& (*pf)(std::ostream&))
std::ostream& operator<< (std::ios& (*pf)(std::ios&))
std::ostream& operator<< (std::ios_base& (*pf)(std::ios_base&))

但通话总是在 basic_ostream

结束
_Myt& __CLR_OR_THIS_CALL operator<<(_Myt& (__cdecl *_Pfn)(_Myt&))
{// call basic_ostream manipulator
    _DEBUG_POINTER(_Pfn);
    return ((*_Pfn)(*this));
}

自己找到解决方案

问题是其他重载运算符返回了 std::ostream& 因此无法调用重载函数。