草庐IT

clang-instrumented

全部标签

c++ - clang 的 'range-loop-analysis' 诊断是关于什么的?

背景:考虑以下example:#include#includeintmain(){std::vectorvectorBool{false,true};for(constauto&element:vectorBool)std::cout它发出警告:test.cpp:6:21:warning:loopvariable'element'isalwaysacopybecausetherangeoftype'std::vector'doesnotreturnareference[-Wrange-loop-analysis]for(constauto&element:vectorBool)std:

c++ - 用 clang++ 生成的可执行文件变得疯狂

#include#include#include#includeusingnamespacestd;classBook{public:inta;intb;};intmain(){Bookb1;b1.a=10;b1.b=20;cout当我们编译上面的代码时clang++test.cc-oa.exe并运行a.exe完美运行。但是当我们用编译同一个程序时clang++test.cc-emit-llvm-S-oa.exe现在当我们运行它时,程序会启动ntvdm.exe(可以在进程资源管理器中看到)并且命令提示符开始表现得很奇怪。软件堆栈:clangversion2.9(tags/RELEASE

带有 Clang 的 QtCreator 中的 C++14 支持

如何使用Clang3.5在QtCreator3.3中启用C++14支持?我添加了一个Clang工具包,并在我的项目文件中添加了CONFIG+=c++14。但是,当使用例如returntypededuction我收到以下错误:error:'auto'returnwithouttrailingreturntype;deducedreturntypesareaC++1yextension 最佳答案 你可以在.pro文件中使用CONFIG+=c++14和Qt5.5但是clang有一个bug,所以我们需要修改Qt/5.5/clang_64/m

c++ - g++ 和 clang++ - 删除重载转换运算符歧义获取的指针

我试图发布此代码作为对thisquestion的回答,通过制作这个指针包装器(替换原始指针)。这个想法是将const委托(delegate)给它的指针,这样filter函数就不能修改值。#include#includetemplateclassmy_pointer{T*ptr_;public:my_pointer(T*ptr=nullptr):ptr_(ptr){}operatorT*&(){returnptr_;}operatorTconst*()const{returnptr_;}};std::vector>filter(std::vector>const&vec){//*vec.

c++ - clang,返回带有类型转换的 std::unique_ptr

这是我的代码:#includestructA{};structB:A{};std::unique_ptrtest(){autop=std::make_unique();returnp;}intmain(intargc,char**argv){test();return0;}它不会在clang上编译并出现错误:main.cpp:11:12:error:noviableconversionfromreturnedvalueoftype'unique_ptr>'tofunctionreturntype'unique_ptr>'然而,根据this(同样的情况)应该。我是不是误会了什么?我的命令

c++ - 使用 clang 的功能检查宏来检测 std::launder 的存在

我必须使用不同版本的clang编译相同的代码。由于代码包含一些c++17功能,并非每个版本的clang都支持这些功能,因此我想在编译时检查它们是否受支持。据我所知,clang的featurecheckingmacros是正确的方法。我的问题特别出现在std::launder上。我创建了这个最小的例子:#include"iostream"#if__has_builtin(__builtin_launder)voidtest(){inti=42;std::cout如果我使用clang++-std=c++1z-stdlib=libc++-Wall-pedantictest3.cpp&&./a

c++ - 使用 C++0x : call to deleted constructor of 时的 clang++ 错误消息

您好,我已经将我的Xcode升级到4.2版,并将clang++升级到以下版本:Appleclangversion3.0(tags/Apple/clang-211.10.1)(basedonLLVM3.0svn)Target:x86_64-apple-darwin11.2.0Threadmodel:posix当尝试使用clang-std=c++0x编译以下代码时#include#include#includeclassilpConstraintImpl{public:virtual~ilpConstraintImpl(){}};classilpConstraint{public:ilpC

c++ - 为什么 clang++ 无法在 Mavericks 下的 Mac 上编译,除了 sudo?

在我的mac上进行了最新的软件更新后,我无法在没有sudo的情况下编译和链接c++helloworld程序。程序(helloworld.cpp):#includeintmain(){std::cout调用:clang++helloworld.cpp因错误而失败:ld:can'twriteoutputfile:a.outforarchitecturex86_64clang:error:linkercommandfailedwithexitcode1(use-vtoseeinvocation)但如果我在sudo下执行此操作,sudoclang++helloworld.cpp没问题。可能是什

c++ - 在 Eclipse CDT 中使用 Clang 静态分析器

虽然理论上可以将外部静态分析器集成到Eclipse中,如所演示的here(即对于Cppcheck),我想知道是否存在不需要插件开发的更新解决方案?例如,现有插件、CODAN中的可用选项或上述ClangStaticAnalyzer教程的简化版本。 最佳答案 CodeCheckerEclipsePlugin是一个Eclipse插件,可以显示C/C++项目的ClangStaticAnalyzer和ClangTidy缺陷。安装后,您可以将它作为“CodeCheckernature”添加到您的CDT项目中。唯一的软件要求是您的机器上必须安装C

c++ - Clang 不会在编译时为非 constexpr 变量计算 constexpr 函数的值

部分代码:constexprintsum(inta,intb){returna+b;}intmain(){inta=sum(4,5);return0;}我用clang-9编译这段代码,但它在编译时不会计算main函数中inta的值。如果我使用constexprintaclang会在编译时评估它,但我无法在运行时更改此变量。但是gcc-7.1在编译时计算inta的值。为什么会这样?如何解决? 最佳答案 当您希望在编译时预先计算一个值然后绑定(bind)到允许修改的标识符时,您只能通过使用constexpr初始化非constexpr对象