相关疑难解决方法(0)

有哪些开源C++静态分析工具?

Java有一些非常好的开源静态分析工具,如FindBugs,CheckstylePMD.这些工具易于使用,非常有用,可在多个操作系统上运行并且免费.

可以使用商业C++静态分析产品.虽然拥有这样的产品很棒,但是学生的成本太高,而且通常很难获得试用版.

另一种方法是找到可在多个平台(Windows和Unix)上运行的开源C++静态分析工具.通过使用开源工具,可以对其进行修改以满足特定需求.寻找工具并非易事.

下面是其他人发现或建议的C++静态分析工具的简短列表.

什么是其他任何人都知道并可以推荐的便携式开源C++静态分析工具?

一些相关链接.

c++ static-analysis coding-style

298
推荐指数
8
解决办法
9万
查看次数

这个自我初始化有效吗?

我有这个问题,我之前想过这个问题,但认为回答并非易事

int x = x + 1;
int main() {
  return x;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果程序的行为是有效的,那么它是否被定义或未定义.如果定义了,那么x已知的值是main多少?

c++ initialization initialization-order

64
推荐指数
3
解决办法
3150
查看次数

int foo = foo的标准参考

int foo = foo;编译.C++标准的哪一部分允许这个?

c++ undefined-behavior

19
推荐指数
2
解决办法
540
查看次数

C++标准究竟在哪里说取消引用未初始化的指针是未定义的行为?

到目前为止,我无法找到如何推断以下内容:

int* ptr;
*ptr = 0;
Run Code Online (Sandbox Code Playgroud)

是未定义的行为.

首先,有5.3.1/1表示这*意味着转换T*为的间接T.但这对UB没有任何说明.

然后经常引用3.7.3.2/4说在非空指针上使用解除分配函数会使指针无效,之后无效指针的使用是UB.但是在上面的代码中没有关于释放的内容.

如何在上面的代码中推导出UB?

c++ standards undefined-behavior language-lawyer

11
推荐指数
5
解决办法
3494
查看次数