如何在 MFC 项目中正确使用大括号或 gsl::narrow_cast?

Posted

技术标签:

【中文标题】如何在 MFC 项目中正确使用大括号或 gsl::narrow_cast?【英文标题】:How to correctly use braces or gsl::narrow_cast in MFC project? 【发布时间】:2021-09-11 08:11:34 【问题描述】:

我在研究中看到这里讨论过这个问题,但我仍然遇到问题并且不确定。

我的代码:

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:: 标记为未知。

【问题讨论】:

【参考方案1】:

代码分析的建议点是检查缩小转换

intvalue 是缩小转换,如果value 是常量,则可以在编译时 中检查。 intmapHistory.size() 不应该编译。

gsl 检查是 runtime,因此它实际上会检查您的情况下的值范围。要使其编译,obtain gsl library,并使其可供编译器使用。

【讨论】:

以上是关于如何在 MFC 项目中正确使用大括号或 gsl::narrow_cast?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MFC 中创建圆角矩形按钮

在 MFC 项目中使用资源文件的正确方法是啥?

试编写一个算法从检查一个Java语言中的大括号方括号小括号是不是配对,若能够全?

使用 spark.sql parse_url() 从包含大括号或管道的 URL 中提取主机

在 CMakeLists.txt 中链接 GSL

如何删除字典外部大括号或将其不带大括号附加到列表中?