Google C++样式中的"Reference Arguments"规则简介
About the "Reference Arguments" rule in Google C++ Style
我正在将我的代码转换为遵循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
是非常违反谷歌的风格准则。
相关文章:
- 此代码是否违反一个定义规则
- 生成文件不对文件使用隐式规则
- 变量可能尚未初始化[MIRA 2012规则9.1,强制性]
- 静态结构和一个定义规则
- 尽管遵循了规则,内存泄漏在哪里
- 具有变量Number of Arguments的std::函数的矢量
- 这是关于成员访问规则的正确摘要吗
- uint_not_usable_without_attribute在业力规则中使用数字生成器时静态断言失败
- 增强精神解析器规则以检测语句中的特殊结尾
- 制作文件:没有规则来制定目标:如何设置正确的规则?
- 为什么此指针值不能转换为整数的规则是什么?
- 传递通用函数,用于梯形规则的数值积分
- C++内存模型中的确切规则阻止在获取操作之前重新排序
- 模板如何影响C++中隐式声明的规则?
- 如何修复"too few arguments to function"?
- antlr 规则上下文是否可以独立于目标
- Bison/flex 在识别规则后等待输入
- 生成文件中隐式规则中的 -c 标志出错
- 单链接列表实现,规则为 3
- Google C++样式中的"Reference Arguments"规则简介