visual-c++ - 如何在 MFC 项目中正确使用大括号或 gsl::narrow_cast?
问题描述
我从我的研究中看到这里讨论过这个问题,但我仍然遇到问题并且不确定。
我的代码:
m_gridAssignHist.SetRowCount(static_cast<int>(mapHistory.size()) + 1);
代码 analysys 说要么使用大括号,要么gsl::narrow_cast
:
m_gridAssignHist.SetRowCount(gsl::narrow_cast<int>(mapHistory.size()) + 1);
- 我不确定如何在这种情况下正确使用大括号,希望得到澄清。
- 我的 IDE 标记
gsl::
为未知。
解决方案
代码分析的建议点是检查缩小转换
int{value}
正在缩小可以在编译时检查的转换,如果value
是常量。int{mapHistory.size()}
不应该编译。
gsl
check 是runtime,因此它实际上会检查您的情况的值范围。要使其编译,请获取 gsl 库,并将其提供给编译器。
推荐阅读
- javascript - 是否通过信令服务器强制共享冰包
- python - MNIST 数据集的负数
- facebook-graph-api - localStorage,令牌是否必须字符串?
- verilog - 行为建模在 testbench.test 中不是有效的左值
- c - 如何在 C 中分别读取标志和文件名?(基于 WC 实用程序)
- r - 在R中将数字转换为日期格式?
- firebase - 如何访问 Document Snapshot 元素?
- html - Webpack 仅显示“应用就绪”。但不显示组件。如何解决?
- eclipse - RobotFrameWork 标准库没有出现在 Eclipse 中
- javascript - 简单的 Web3 安装