草庐IT

clang_complete

全部标签

c++ - Visual Studio C++ "Automatically format completed block on }"

VisualStudio具有适用于C#的此设置,但我找不到适用于C++的设置。“在}上自动格式化完成的block”我在处理C#内容时经常使用此功能,现在我又回到了C++(我更喜欢),我想念这个功能。我该如何设置?我想此时我必须使用第3方插件或其他东西,但我在所有搜索中找不到任何相关插件。此功能的作用:如果我有一段代码并在其前键入“{”,然后在其后键入“}”,它会自动将其跳格以匹配使代码更易于阅读的跳格规则。例如:从一些代码开始:{inti=1;intj=2;j+=i;}在某处添加一个开始括号:{inti=1;intj=2;{j+=i;}添加一个结束括号,包含的代码会自动为我添加标签:{

c++ - 代码在带有警告的 g​​++ 上编译,但在 clang3.1(Xcode 4.3.3) 上给出相同代码的错误

下一行在g++上编译成功,但在clang::上出错static_assert(tBitsg++警告::therearenoargumentsto'static_assert'thatdependonatemplateparameter,soadeclarationof'static_assert'mustbeavailableclang错误::useofundeclaredidentifier'static_assert';didyoumean'static_cast'?请帮帮我。来自评论的函数声明:templateHRESULTDoIO(std::bitset&bitsetToSer

c++ - 使用 Clang 工具解析 C++ 标准头文件时出错

我正在使用clang工具来解析位于/usr/lib/gcc/x86_64-linux-gnu/4.7/string中的标准头文件。但是我收到以下错误。Infileincludedfrom~/PrototypeWork/user/header.hpp:3:Infileincludedfrom/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/string:41:Infileincludedfrom/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7

Python clang 不搜索系统包含路径

当从Python使用libclang时,它似乎不会自动搜索系统的包含路径。是否有可靠的方法来获取这些路径?我不喜欢硬编码路径,因为我编写的代码将在各种UNIX系统上运行。例如给定test.cpp#includeintmain(){puts("Hello,world!");}和测试.pyfromclang.cindeximportIndextu=Index.create().parse(None,["test.cpp"])print(list(tu.diagnostics))运行pythontest.py将打印:[,spelling"'stdio.h'filenotfound">]当然可

c++ - 无法理解这是循环依赖还是 Clang

我在Clang/OSXYosemite上,我的项目很好地使用了Eigen。然后我引入了一个也使用Eigen的外部库,现在我有这个编译错误:/usr/local/include/Eigen3/Eigen/src/Geometry/Quaternion.h:516:13:Implicitinstantiationofundefinedtemplate'Eigen::internal::quaternionbase_assign_impl,3,1>'这似乎来自库中的声明:#include这是我使用四元数的代码:Eigen::Quaternionq,q_wv,q_ic,q_cv;q_cv=_p

c++ - 通过 clang-format 格式化 lambda 背后的逻辑是什么?

我在Emacs(24.5.2版)中使用clang-format(3.5版)。下面是一段由clang-format以LLVM风格格式化的简单代码:intmain(){std::cout";std::stringword;while(std::cin>>word){std::cout";}return0;}请注意它是如何对齐lambda的正文和右括号的。这种格式是否有任何逻辑,或者它只是缺乏对lambda的支持?我需要设置clang-format的配置参数以获得更好的格式吗? 最佳答案 std::accumulate(word.cbeg

c++ - __attribute__ ((weak)) 的处理在 clang 和 gcc 中是不同的

我有一个应用程序(app)和一个动态库/共享对象(dlib),它们都链接到一个静态库,该静态库使用__declspec(selectany)在头文件中声明了一个全局变量(gvar)|/__attribute__((weak)).通过设计,app和dlib都应该有自己的gvar拷贝(在MSVC和GCC上我完全明白这一点)。移植到MacOSX并用clang编译后,我看到dlib中的gvar链接到应用程序中的gvar。不确定这是一个clang错误还是设计使然;如果是设计使然,是否有任何方法可以避免它并获得与GCC/MSVC中相同的行为?clang版本:bash-3.2$c++--versio

c++ - Clang 不能与 std::experimental::optional 一起正常工作

clang似乎不能与std::experimental::optional一起正常工作。考虑以下示例:#include#includestructFoo{intbar;};intmain(){Foofoo;std::experimental::optionalopt=foo;opt.value().bar=42;std::cout它在g++5.3.1版中编译良好,但在clang7.0.0版和clang7.0.2版中均无法编译。返回的错误是:Undefinedsymbolsforarchitecturex86_64:"std::experimental::bad_optional_acc

c++ - VisitDecl 与 TraverseDecl(Clang RecursiveASTVisitor)

我已阅读此链接,但仍不完全理解TraverseDecl和VisitDecl(及其用例)之间的区别http://clang.llvm.org/doxygen/classclang_1_1RecursiveASTVisitor.html在编写我的RecursiveASTVisitor时我应该覆盖哪个方法? 最佳答案 TraverseDecl告诉前端库的ASTConsumer从AST递归访问声明。然后调用VisitDecl,您可以在其中提取相关信息。点击这两个链接以获取更多详细信息和一个简单的检查器示例:http://clang.llvm

c++ - 如何在 Clang 中启用内联函数的编译?

我正在使用Clang作为库来生成一些LLVMIR模块。这是模块的源代码:inlineintgetSevenInline(){return7;}intgetSeven(){returngetSevenInline();}我希望LLVMIR模块包含一个函数getSeven,它返回7。这是我的程序生成的LLVMIR:;ModuleID='./test.cpp'source_filename="./test.cpp"targetdatalayout="e-m:o-i64:64-f80:128-n8:16:32:64-S128"targettriple="x86_64-apple-macosx1