草庐IT

clang_complete

全部标签

c++ - 左值引用对象 : Clang and gcc disagree 上的 Constexpr 成员函数

当类具有constexpr成员函数并且该成员函数正在constexpr上下文中的左值对象上求值时,clang和gcc不同意结果是否为constexpr值。为什么?是否有既不需要默认可构造性也不需要复制可构造性的解决方法?当对象按值传递时,两个编译器都编译成功。Clang版本trunk、8、7:static_assert表达式不是整数常量表达式和Gcc版本trunk、8.1、7.4:编译没有错误#includeusingA=std::array;voidfoo(constA&a){//clang:static_assertexpressionisnotanintegralconstant

c++ - 使用 clang 的 QT header 中的错误

问题:因此我的问题是:如何在不完全关闭警告的情况下构建我的QT项目(或者必须从一百万个无目的的警告中进行分类才能找到我自己的警告)?我可以只抑制QTheader的警告吗?详情:问题几个月前,我在QT-Creator中开始了一个QT项目。当时我使用的是gcc4.6。在其他一些优先事项出现之后,我发现自己直到现在都没有时间处理这个项目。在此期间,我转而使用clang。当我将我的QT项目配置为使用clang时——该项目在g++中编译时没有警告——它在QTheader本身中生成了大约263个警告。主要是符号转换和无法访问的代码。尝试为了尝试解决这个问题,我添加了-isystem/path/to

c++ - 使用 ninja 和 clang++ 时 vim 中的 Quickfix 列表

我有一个使用ninja和clang++编译的C++项目,并且希望在快速修复列表中出现编译期间的错误。目前,当我设置makeprg=ninja,然后运行​​:make时,ninja生成的所有输出都只出现在quickfix窗口中,不能用于跳转到相应的文件/行等我不是在寻找syntastic提供的功能(我已经在使用),但我也想查看项目中其他文件的错误,类似于IDE提供的错误。如果这不能(轻松)用ninja完成,也欢迎使用make的解决方案(该项目使用cmake,所以两者都是可能的),但如果可能的话,我想留在ninja。 最佳答案 allo

c++ - gdb 找不到由 clang++ 编译的源文件

当使用clang++编译我的项目时,目标代码中显然没有包含源文件的路径。这意味着gdb无法找到用于显示代码的源文件。对于特定实例,我可以使用gdb的directory命令添加一个目录,但我的项目有很多源目录,这很快就会变得烦人。当我将我的配置切换为使用g++时,gdb会简单地找到我所有的源文件。此功能适用于SnowLeopard上的clang++2.9,但不适用于Lion上的clang++3.1。我有XCode4.3.2。是否有clang选项强制在目标文件中使用完整路径?我的配置可能还有其他问题吗? 最佳答案 我发现了这一点:问题发

c++ - 如何设置 Clang 以使用 MinGW libstdc++

我一直在尝试在Windows上设置Clang。到目前为止,我幸免于使用VisualStudio和CMake进行构建,并遇到了一些其他的惊喜。但事实证明,Clang没有自带C++stdlib实现,所以我决定使用GCC4.7.0为MinGW构建的libstdc++。首先,我将搜索路径添加到我的HeaderSearchOptions。headeropts->AddPath(path,clang::frontend::IncludeDirGroup::CXXSystem,true,false,false);路径正是header所在的位置-我从Windows资源管理器中复制并粘贴了它(然后将反斜

c++ - clang++ 3.2 链接器找不到 C++ stdlib

我已经在我的Ubuntu13.04机器上安装了clang3.2,并编译和构建了libc++,一切就绪。但是,当我尝试链接我的(非常简单的)代码时,链接器报告对std::cout等的引用未定义。如果有人能建议我如何解决这个问题,我将不胜感激——我已经尝试了所有我能想到的方法。命令和输出在这里:$clang++-v-stdlib=libc++-lpthread-ldlsqlite3/sqlite3.osrc/world.o-obin/worldUbuntuclangversion3.2-1~exp9ubuntu1(tags/RELEASE_32/final)(basedonLLVM3.2)

c++ - 如何安装clang头文件?

我在我的MacOS上安装了clang(在/usr/bin/clang中),我认为它默认安装在Mac上,但是,当我尝试在脚本中包含clang头文件时,它说找不到它们Example.cpp:1:10:fatalerror:'clang/Driver/Options.h'filenotfound问题:当clang已经在MacOS系统上安装和构建时,是否有必要(如果可能,如何)安装头文件(或者clang本身是否需要与所有所需的同时重新安装)开发工具包及其头文件是否已安装)?#include"clang/Driver/Options.h"#include"clang/AST/AST.h"#inc

c++ - 可以使用 clang 将 C++17 与 CUDA 一起使用吗?

就使用nvcc而言,需要结合使用相应的gcc(我相信目前最大为5.4)。这当然会在某种程度上阻止人们在主机端使用C++17。因为C++17可以使用clang5和更高版本编译(参见here),并且也可以编译cuda代码(参见here),是不是是否可以同时使用C++17和CUDA(或者是否会出现问题,例如CUDA运行时)? 最佳答案 是的,正如您已经猜到的那样,CUDAclang前端在C++功能支持方面确实领先,甚至在设备代码方面也是如此。这已经是过去了,在NVCC之前引入了C++14特性,社区大多没有注意到。以这个C++17为例,不必

c++ - 函数指针数组的类模板参数推导适用于 clang,但不适用于 gcc

以下代码:#includetemplateautof(){}intmain(){std::array{f};}使用clang7.0编译,但使用gcc8.2失败并显示消息prog.cc:Infunction'intmain()':prog.cc:7:20:error:classtemplateargumentdeductionfailed:std::array{f};^prog.cc:7:20:error:nomatchingfunctionforcallto'array()'Infileincludedfromprog.cc:1:/opt/wandbox/gcc-8.2.0/inclu

C++11 构造函数重载解析和初始化列表 : clang++ and g++ disagree

我有一小段C++11代码,g++(4.7或4.8)拒绝编译,声称对B2b2a(x,{P(y)})的构造函数的调用不明确。Clang++对这些代码很满意,但拒绝编译B2b2b(x,{{P(y)}})而g++很乐意编译!两个编译器都非常满意以{...}或{{...}}作为参数的B1构造函数。任何C++语言律师都可以解释哪个编译器是正确的(如果有的话)以及发生了什么?代码如下:#includeusingnamespacestd;classY{};classX;templateclassP{public:P(T);};templateclassA{public:A(initializer_li