重载流操纵器运算符
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& 因此无法调用重载函数。
嗨,我正在尝试重载运算符<<以挂接到
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& 因此无法调用重载函数。