clang++相关内容

为什么g++5在自动类型推导中推导对象而不是initializer_list

我最近发现了这个代码: struct Foo{};int main(){福一;//clang++ 推导出 std::initializer_list//g++5.1 推导出 Foo自动 b{a};a = b;} 它用 g++5.1 编译得很好,但在 clang++ 中失败(同时使用 -std=c++11 和 -std=c++14,相同结果).原因是 clang++ 将 b 的类型推导出为 st ..
发布时间:2021-11-30 18:14:26 C/C++开发

如何让 clang 转储没有颜色的 AST?

使用 clang-check 转储源代码的 AST,可以使用以下命令完成: $ clang-check -ast-dump file.c -- 但是,此命令的输出将在终端中显示为彩色. 当我将输出定向到文件时,我遇到了所有颜色转义码: $ clang-check -ast-dump file.c -- >输出.txt 示例: [0;1;32mTranslationUnitDecl[0m ..
发布时间:2021-11-26 18:03:05 其他开发

无法使用 clang++ 交叉编译代码

命令: 我正在尝试使用 clang++ 交叉编译一个简单的 C++ 程序.我正在使用 Linaro gcc 工具链来获取库和其他所需的包含. ${root}/bin/clang++ --target=arm-linux-gnueabihf --rtlib=compiler-rt --stdlib=libc++ -nostdinc++ -I${root}/include/c++/v1 -wl ..
发布时间:2021-11-17 22:38:34 其他开发

<功能>上的clang 4构建错误用 c++1z

我刚刚将我的 arch linux 系统更新到最新的,其中包括 gcc 7.1.1.试图构建这个: #include int main(int argc, char** argv) {返回 1;} 使用命令 clang++ main.cpp -std=c++1z 导致错误: 在 main.cpp:1 包含的文件中:在/usr/bin/../lib64/gcc/x86_64-pc-linu ..
发布时间:2021-11-17 03:23:14 其他开发

参数包后具有非推导类型的参数

对于下一个程序,clang++ 和 g++ 有不同的行为: #include #include 模板struct ref { 类型 &价值;};模板类型 &&get(ref const & r){返回 std::forward(r.value);}模板decltype(auto) apply_inverse(F && f, types &&... values){返 ..
发布时间:2021-09-16 18:58:29 其他开发

&#39; omp.h&#39;使用clang编译时找不到文件

我正在尝试在运行Linux Mint的笔记本电脑上使用clang(3.7.0)设置OpenMP项目. 现在我已经了解到不立即支持OpenMP,所以我按照本教程 https://clang-omp.github.io/将openMP集成到clang中. 我已经克隆了源代码,设置了环境变量并在项目中设置了-fopenmp标志,但是在构建时仍然出现错误“严重错误:找不到'omp.h'文件". ..
发布时间:2021-05-29 23:14:13 其他开发

clang ++内存清理程序报告未初始化的值的使用

此代码摘自 IncludeOS github页.我对其进行了一些修改,以便在不使用其他头文件的情况下进行编译.IncludeOS的 find 函数有点太冗长,因此我想简化一下.但是修改后,代码的行为与我预期的有所不同. 这里是一个简短的解释.此代码用于解析HTTP标头.标头字段是名称-值对.它表示为 vector> . find 函数用于查找字段名 ..
发布时间:2021-04-22 18:45:18 其他开发

如何将C ++ 11标志传递给"npm install"?

我正在尝试通过运行以下命令在MAC上安装"opencv4nodejs"软件包: CXXFLAGS = -std = gnu ++ 11 npm i -g opencv4nodejs 这给了我以下错误: /usr/local/lib/node_modules/opencv4nodejs/node_modules/opencv-build/opencv/opencv/modules/high ..
发布时间:2021-04-22 18:45:16 其他开发

用Frama-C分析一个简单的C ++程序

我从一个很棒的教程开始学习C ++,该教程位于 https://learnxinyminutes.com/docs/c++/,并希望在Frama-C中分析一个显示引用的最简单示例: 使用命名空间std;#include#includeint main(){字符串foo =“我是foo";string bar =“我是酒吧";弦&fooRef = foo;/ ..
发布时间:2021-04-22 18:45:11 其他开发

与CUDA,Clang和LLVM IR苦苦挣扎,并得到:CUDA故障:'无效的设备功能'

我正在尝试在配备V100 GPU,CUDA 10.1和LLVM 11(从源构建)的PowerPC系统(无根访问权限的RHEL 7.6)上使用LLVM传递优化CUDA代码.另外,我在简单的C ++代码上测试了 clang,lli 和 opt ,并且一切正常. 经过几天的搜索,阅读和反复试验,我设法编译了一个简单的CUDA源代码.该代码是著名的 axpy : #include ..
发布时间:2021-04-22 18:45:08 其他开发

使用SFINAE与GCC一起使用但与Clang不一起使用的代码

我正在尝试在C ++ 11中使用SFINAE来实现序列化库.我的代码可以在GCC上正常运行,但不能在Clang上运行.我在这里将其简化为最少的代码: 模板constexpr auto has_save_method(A& ar,T& t)->decltype(t.save(ar),bool()){返回true;}模板 ..
发布时间:2021-04-22 18:45:02 其他开发

由于变量成员N3690/N4140与N4659/N4727,隐式定义的构造函数被删除

我的故事和这个人的故事开始一样 C ++ 11中的联盟:默认构造函数似乎被删除 这里的决议(现在已经大约三年了)有点不满意,因为作者所做的“挖掘标准"最终得出的结论是行为符合标准中的描述,但不幸的是引述来自 Note ,而这些应该是非规范性的(有人告诉我).无论如何,有一个指向gcc的旧错误报告的链接已被修复,并且他们还声称该代码使用clang编译,但是我遇到了问题(使用相同和相似的代 ..
发布时间:2021-04-22 18:44:59 其他开发

如何编写LLVM万花筒教程?

我以前一直在C#中使用LLVM,其中包括一个Nuget LLVM库.我转而使用C ++,并尝试遵循万花筒教程.不幸的是我不知道如何编译它.我保存了第三章中的原始源文件,并使用了以下命令: clang ++ -g -O3 toy.cpp`llvm-config --cxxflags --ldflags --system-libs --libs core` -o toy 编译器因错误而停止: ..
发布时间:2021-04-22 18:44:56 其他开发

使用自定义Clang + Libc ++(而不是stdlibc ++)编译Tensorflow

我正在尝试使用自定义clang/llvm工具链并使用clang的本机libc ++编译tensorflow(而不是借用Gcc的stdlibc ++). 似乎bazel plain假设每个clang都将使用Gcc的库,因为出现以下错误: $ bazel build --cxxopt = -std = c ++ 11 --cxxopt = -stdlib = libc ++ tensorfl ..
发布时间:2021-04-22 18:44:49 其他开发

编译器是否优化出净零位移位?

我在 .cpp 文件中有一些类似于以下代码块的代码(不允许张贴原始代码),我认为它是由 clang ++ 编译的( Ubuntu clang版本3.5.2-3ubuntu1(标签/RELEASE_352/final)(基于LLVM 3.5.2)). 看起来像 C 代码,因为我们正在使用 GoogleTest 来测试我们的 C 代码.无论如何: size_t const SHIFT = 4;u ..
发布时间:2021-04-22 18:44:45 其他开发

编译器优化开关的方式与if-then-else长链不同吗?

假设我在编译时有N个不同的整数值,即V_1至V_N.考虑以下结构: const int x = foo();开关(x){情况V_1:{/*用于V_1的命令,不更改x */};情况V_2:{/* V_1的命令不更改x */}中断;/* ... */大小写V_N:{/* V_1的命令,不更改x */};} 与 const int x = foo();if(x == V_1){/* V_1的 ..
发布时间:2021-04-22 18:44:42 其他开发

在两个ASM GCC内联块之间传播进位

亲爱的Assembly/C ++开发人员, 问题是:即使在两个ASM块之间传播进位(或任何标志)是否现实或完全疯狂? 几年前,我开发了一个整数库,用于小于512位(在编译时)的大型算术运算.我目前未使用GMP,因为对于这种规模,由于内存分配和模型为二进制表示形式选择工作台. 我必须承认我使用 BOOST_PP 创建了我的ASM(字符串块),它不是非常光荣(出于好奇,请看一下 ..
发布时间:2021-04-22 18:44:39 其他开发