c++ - 有没有办法让 Visual Studio 编译器为此 C++ 代码发出警告?
问题描述
我真的很想追踪这类错误,如果 DoNothing 确实修改了值,我真的不在乎是否收到警告。使用 VS2019,如果这有什么不同的话。
void DoNothing(int&){}
int GetUninitializedInt()
{
// uninitialized
int x;
DoNothing(x);
// still uninitialized, compiled with /Wall gives no warning
return x;
}
解决方案
实际上,C++ 编译器无法捕获此类错误。你只能人为地避免这样的错误。因此,我建议您通过设置来提高警告级别以尽可能避免此错误Properties->C/C++->General->Warning Level
。
对于这个问题,您可以修改代码:
void DoNothing(const int&){}
//Or
void DoNothing(int){}
推荐阅读
- android - FirebaseMessagingService 扩展服务类在 android 7.1.1 设备中被破坏
- html - 如何使用 href 从 URL 中删除查询字符串
- reactjs - ReactJS 中的三元运算符混淆
- reactjs - 是否可以在 Ant Design 中禁用空表的标题?
- php - axios 接收 array_filter 结果作为对象而不是数组
- javascript - 如何让 Ionic 3 应用程序从 Ionic 1 应用程序使用的 window.localstorage 读取现有数据?
- react-native - 无法解析模块“react-redux”...模块“react-redux”在加速模块映射中不存在
- c++ - 如何正确格式化此打印功能?
- java - Json 没有被写入文件
- javascript - 在 JS 中获取用户定义的 CSS 值