在对代码库进行了一些更改后,我遇到了这个问题:
#include <string>
void test(const std::string& s){
}
int main()
{
test(NULL);
return 0;
}
https://godbolt.org/z/7uJnef
这会引发异常。更改为 'nullptr' 没有任何帮助(仍然没有错误或警告)。
我想我的问题是,有没有办法在整个源代码的运行前检测或找到此错误?也许是一些编译器警告等(使用 MSVC VS-2017)
我最终修改了 basic_string 模板 ala。
basic_string(int) = delete; basic_string(::std::nullptr_t) = delete;
- 这不会捕获所有案例,但似乎确实至少能够捕获直接案例 最佳答案
在示例文件上运行 cppcheck
(版本 1.89)会产生:
关于c++ - 从NULL构造字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58304063/