如何在 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?的主要内容,如果未能解决你的问题,请参考以下文章
试编写一个算法从检查一个Java语言中的大括号方括号小括号是不是配对,若能够全?