我尝试为我的类重载operator <<,以便在我执行std :: cout << obj时打印成员;
我知道这样做的方法是
std::ostream& operator<<(std::ostream& os, const T& obj)
{
// write obj to stream
return os;
}
Run Code Online (Sandbox Code Playgroud)
但是,我尝试使我的代码符合Google C++风格指南 https://google.github.io/styleguide/cppguide.html#Reference_Arguments
它表示不允许传递没有const的引用,除非按惯例需要它,例如swap().这个重载运算符<<与swap()在同一类别中吗?或者有办法做某事
std::ostream& operator<<(std::ostream* os, const T& obj)
^
Run Code Online (Sandbox Code Playgroud)
?或者不以非const引用作为输入的东西.
如果是这样,请教我如何做到这一点.谢谢.
它表示不允许传递没有const的引用,除非按惯例需要它
好吧,流通常作为非const引用传递给流插入和提取操作符,因此看起来该规则允许您例外.因此,尽管接受非const引用参数,但定义建议的重载应该符合规则.
也就是说,我不是谷歌认为会议的权威.如果你在谷歌工作,你应该知道要问谁; 如果你不这样做,你就不需要对他们的风格感到压力.
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |