MFC工程中如何正确使用大括号或gsl::narrow_cast?
How to correctly use braces or gsl::narrow_cast in MFC project?
我从我的研究中看到这里讨论过这个问题,但我仍然遇到问题并且不确定。
我的代码:
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
检查是 runtime,所以它实际上会检查你的情况下的值范围。要使其编译,obtain gsl library,并使其可供编译器使用。
我从我的研究中看到这里讨论过这个问题,但我仍然遇到问题并且不确定。
我的代码:
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
检查是 runtime,所以它实际上会检查你的情况下的值范围。要使其编译,obtain gsl library,并使其可供编译器使用。