Google C++样式中的"Reference Arguments"规则简介

About the "Reference Arguments" rule in Google C++ Style

本文关键字:Arguments 规则 Reference Google 样式 C++      更新时间:2023-10-16

我正在将我的代码转换为遵循google c++风格指南。引用实参规则规定"所有通过引用传递的形参必须标记为const"answers"输入实参是值或const引用,而输出实参是指针"。

对于签名void MyTable::LoadTable(ifstream &fin),如果LoadTable调用fin的一些非const函数,例如fin.seekg,我如何标记参数fin const ?我认为fin应该被视为一个输入/输出参数,因此它有点特殊。在这种情况下,谷歌人会怎么做?


更新:我知道有很多关于谷歌风格指南的批评。我只是想知道谷歌人是如何处理它的,也许我找到了一个答案:有另一个规则流阅读"使用流仅用于日志记录"。也许他们只是在这种情况下不使用流。

为了符合Google指南,请更改声明

void MyTable::LoadTable( ifstream& fin )

void MyTable::LoadTable( ifstream* fin )

现在你可能会想,这有什么意义?很大一部分原因可能是Google c++风格指南在Google之外没有多大意义。部分原因可以通过假设需要维护大量C风格的遗留代码来解释,但部分原因令人费解。

只是一个例子,std::getline是非常违反谷歌的风格准则。