草庐IT

clang_analyzer

全部标签

c++ - 如何通过 cpp 项目文件夹调用 clang-format?

有没有办法为整个cpp项目文件夹调用类似clang-format--style=Webkit的东西,而不是为每个文件单独运行它?我正在使用clang-format.py和vim来执行此操作,但我认为有一种方法可以应用一次。 最佳答案 不幸的是,没有办法递归地应用clang格式。*.cpp只会匹配当前目录中的文件,不匹配子目录。连**/*都不行。幸运的是,有一个解决方案:使用find命令获取所有文件名并将它们通过管道输入。例如,如果要格式化所有.h和递归foo/bar/目录下的.cpp文件,可以这样做findfoo/bar/-inam

c++ - 编译一个相当简单的c++ 11程序时gcc和clang之间的不同结果

我试图了解gcc与clang在这个简单的C++11程序的输出中暴露的不同行为是否是由于clang中的错误(Xcode5.0.2,OSX10.8.5)。代码如下:#includeintmain(){intmatrix[][3]{{1,2,3},{4,5,6},{7,8,9}};autodyn_matrix=newint[3][3]{{1,2,3},{4,5,6},{7,8,9}};std::cout如图所示,我正在尝试使用统一初始化来初始化大小为3x3的匿名(或命名)多维数组。从MacPorts使用gcc4.7编译时,会获得预期的输出:$g++-mp-4.7-std=c++11dyn_m

c++ - 如何在 Intel 语法中使用 clang 生成汇编代码?

作为thisquestion显示,使用g++,我可以执行g++-S-masm=inteltest.cpp。此外,使用clang,我可以执行clang++-Stest.cpp,但clang不支持-masm=intel(编译期间未使用的警告参数:-masm=intel)。如何使用clang获取intel语法? 最佳答案 作为notedbelowby@thakis,较新版本的Clang(3.5+)接受-masm=intel论据。对于旧版本,这应该会发出带有Intel语法的汇编代码:clang++-S-mllvm--x86-asm-synt

c++ - 如何在 Clang 中使用 C++ 11 功能?

如何在Clang中使用最新的C++11功能?支持哪些(子)功能集? 最佳答案 您需要clang3.3才能使用C++11中最相关的功能集。阅读C++SupportinClang获取最新支持功能的完整列表。Clang3.3声称是C++11功能完整的。Clang的命令行与gcc兼容,因此您必须通过followinf命令行开关启用C++11支持-std=c++11Clang3.3还支持许多C++11后的特性(如decltype(auto)、成员初始化器和聚合)。使用此命令行开关启用它们-std=c++1y

c++ - 使用带有 clang++ -stdlib=libc++ 的 libstdc++ 编译库

我在MacOSX(10.8.2)下使用C++工作,最近我想出了使用C++11功能的需求,这些功能可通过使用libc++stdlib的clang++编译器获得。但是,我还需要使用一些针对libstdc++(来自MacPorts)编译和链接的遗留库。这样做时,我遇到了链接错误,因为使用例如std::string的旧库的header需要针对std::__1::进行解析basic_string(即std::string的libc++实现)而不是std::basic_string实现。有没有办法在开发中混合使用这两个库(例如,通过使用一些预处理器标志?) 最佳答案

c++ - clang的-Wweak-vtables是什么意思?

我基本看不懂clang的-Wweak-vtables。以下是我目前观察到的:案例一:(触发警告)classA{public:virtual~A(){}};classB:publicA{public:virtual~B(){}};intmain(){}案例二:(不触发警告)classA{public:virtual~A(){}};intmain(){}案例三:(不触发警告)classA{public:virtual~A();};A::~A(){}classB:publicA{public:virtual~B(){}};intmain(){}案例四:(触发警告)classA{public:

c++ - 使用 clang 更快地完成代码

我正在研究使用clang的代码完成机制时潜在的代码完成加速。下面描述的流程是我在rtags中找到的。,安德斯·巴肯(AndersBakken)。翻译单元由监视文件的守护程序解析以进行更改。这是通过调用clang_parseTranslationUnit和相关函数(reparse*、dispose*)来完成的。当用户在源文件中的给定行和列请求完成时,守护程序将源文件的最后保存版本和当前源文件的缓存翻译单元传递给clang_codeCompleteAt。(ClangCodeCompletedocs)。传递给clang_parseTranslationUnit(来自CompletionThr

c++ - 如何使用 clang 格式自动缩进具有 4 个空格的 C++ 类?

我在项目的根目录中获得了下一个.clang-format文件:---AlignTrailingComments:trueAllowShortFunctionsOnASingleLine:falseAllowShortIfStatementsOnASingleLine:trueAllowShortLoopsOnASingleLine:trueBreakBeforeBinaryOperators:falseIndentWidth:4SortIncludes:falseNamespaceIndentation:All...当我在我的c++头文件上运行clang-format时出现问题,这些类

c++ - 如何使用 clang 格式自动缩进具有 4 个空格的 C++ 类?

我在项目的根目录中获得了下一个.clang-format文件:---AlignTrailingComments:trueAllowShortFunctionsOnASingleLine:falseAllowShortIfStatementsOnASingleLine:trueAllowShortLoopsOnASingleLine:trueBreakBeforeBinaryOperators:falseIndentWidth:4SortIncludes:falseNamespaceIndentation:All...当我在我的c++头文件上运行clang-format时出现问题,这些类

c++ - 使用函数参数作为常量表达式的一部分 - gcc vs clang

考虑以下代码片段:templatestructB{};templateconstexprboolpred(Tt){returntrue;}templateautof(Tt)->decltype(B{}){}clang++(trunk)编译代码g++(trunk)编译失败并出现以下错误:src:7:34:error:templateargument1isinvalidautof(Tt)->decltype(B{})^src:7:34:error:templateargument1isinvalidsrc:7:34:error:templateargument1isinvalidsrc:7