【发布时间】:2021-02-15 01:46:42
【问题描述】:
我想了解如何使用gsl::narrow_cast 而不是static_cast。
我在 stackoverflow 上找到了一个函数,它有一个字符串作为参数,如果所有字符都是 ASCII(前 127 个字符)则返回 true。
bool IsCleanString(const std::string& str)
{
return !std::any_of(str.begin(), str.end(), [](char c) {
return narrow_cast<unsigned char>(c) > 127;
});
}
我已经在我的代码中实现了这个功能,我注意到 Visual Studio 建议使用gsl::narrow 或gsl::narrow_cast。
我的第一个问题是如何使用 gsl 函数?我已经查看了网站上的其他问题,但我还没有找到一个能够说明如何查看 gsl 类/库的问题(我正在构建一个 dll)
第二个问题是这个函数的正确语法是什么,在这种情况下是否有必要改变它?
谢谢。
【问题讨论】:
标签: c++ dll cpp-core-guidelines