C++ ios的正确使用

C++ ios的正确使用,c++,ios,function,C++,Ios,Function,哪个版本的函数(myfunc2或myfunc3)在所有平台中都是正确的 ostream &myfunc1(ostream &os) const { // return os; } ostream &myfunc2(ostream &os) const { os << myfunc1(os); } ostream &myfunc3(ostream &os) const { os << myfunc

哪个版本的函数(
myfunc2
myfunc3
)在所有平台中都是正确的

ostream &myfunc1(ostream &os) const {
  //
  return os;
}
ostream &myfunc2(ostream &os) const {

    os << myfunc1(os);
}

ostream &myfunc3(ostream &os) const {

    os << myfunc1(os).rdbuf();
}
ostream&myfunc1(ostream&os)常量{
//
返回操作系统;
}
ostream&myfunc2(ostream&os)常数{

os您不需要访问流的
rdbuf()
,它访问
streambuf
中的底层缓冲区

从概念上讲,
ostream
streambuf
的前端。您在
myfunc3
中所做的是直接从
streambuf
访问
rdbuf
,绕过
ostream
的接口


这是可以做到的,但并不常见。坚持使用
myfunc2
,这是通常的做法。

您是否缺少
myfunc2
myfunc3
中的
return
语句?