clang++相关内容
使用clang编译c ++-20模块时.导入文件时,导入另一个文件,然后再导入第三个文件时,出现奇怪的编译错误: //a.cppm#include导出模块a;导出std :: string getStuffA(){返回"a";} //b.cppm#include导入出口模块b;导出std :: string getStuffB(){返回"b"+ getSt
..
我正在用clang进行模块的实验,并且希望将标准库作为模块而不是包含在模块中. 目前我正在这样做 #include#include 似乎您在msvc中应该能够导入标准库,例如 import std.core; 但是在使用clang时,这似乎没有实现或以其他方式实现. 我的问题是:是否可以像微软的建议那样导入stl-includes
..
在C ++ 20中,可以用 代替包含标头 #include"header.h" 使用 #import"header.h"//编辑:这不是标准,请参阅注释 (这是针对无法完全转换为模块并且无法使用不带#的常规import关键字的旧代码) 我的问题是关于预处理.长期以来,每个翻译单元只能预编译和使用一个标头.(Clang似乎在级联包含文件时有一些特殊情况,我在这里不考虑)
..
在 :: operator()显式调用尚未解决时,我们可以使用哪种快速修复程序? 关于LLVM错误报告的已报告问题: https://bugs.llvm.org/show_bug.cgi?id = 49881 考虑以下最小再现案例: #includeint main(){//KO,显式模板参数const auto lambda_1 = []
..
在这个简单的示例中,出现编译错误: #includeint main(){std :: unordered_mapa,b;a.合并(b);} 错误: $ clang ++ -std = c ++ 17 merge.cppmerge.cpp:5:4:错误:'std :: __ 1 :: unordered_map
..
虽然说 std :: add_pointer 是一元的,但以下代码已被GCC 7.0.0(20160608)和Clang 3.9.0接受: 模板struct tc1 {使用= std :: add_pointerstruct
..
#include#include#include#include使用命名空间std;int main(){int n;cin>>n;向量一个);for(int i = 0; i>a [i];int ans = a [0];for(int i = 1; i
..
以下代码在GCC(4.9.3)和VC ++(19.00.23506)中可以很好地编译,但是在Clang(3.7.0)中会出现这些错误. 错误:constexpr函数的返回类型'Foo'不是文字类型 注意:'Foo'不是文字的,因为它不是集合,并且没有复制或移动构造函数以外的constexpr构造函数 代码: #include#include
..
在c ++ 20中,启用模块时,应该将每个include封装起来,以便顺序无关紧要,并且宏不会泄漏等. 显然问题 if 是否可以预编译多个标头是 我现在的问题是:如何您如何做到这一点:即:我如何首先预编译一组头文件,然后使编译器将它们(全部)识别为我的预编译头文件使用c ++ 20模块的翻译单元(使用linux命令行). 我想为g ++提供解决方案,但如果只有clang可行,那答
..
我正在尝试在xCode项目中使用boost :: multiprecision :: float128. 我的编译器版本是Apple clang版本11.0.0(clang-1100.0.20.17)目标:x86_64-apple-darwin18.7.0线程模型:posix 我正在使用boost.1.71.0 我正在遵循编译错误 找不到 'quadmath.h'文件
..
这是我的第一个cmake文件.我有一个同时带有clang和g ++的linux系统.还安装了libc ++.我在Mac(xcode)上进行开发,但部署到linux. 我正在编写一个cmake文件,可以在其中选择clang或g ++以及libc ++或libstdc ++.有4种可能的组合. 我想出了如何选择编译器并在其上强制使用c ++ 11,但是我不知道如何指定标准库.有什么建议吗?
..
使用二进制运算符考虑以下类(我仅以operator+为例). struct B{}; template struct A{ template void operator+(BB const&) const{std::cout friend v
..
在Stackoverflow上大量搜索并搜索了我的问题之后,我仍然无法使用clang ++ 3.2运行.EXE文件。 “ clang ++”没有给出.BC文件编译成.EXE时出错。当我尝试运行.EXE文件时,它突然终止了程序。 有人可以帮助我吗? 我已经尝试使用-static-libstdc ++-6 / libstdc ++,但是问题仍然存在。 旁注:使用g ++生成的可
..
当我尝试使用 CFLAGS = -static 编译程序时,收到错误的未定义引用。 当没有静态编译时,完美地工作了。 我的问题是为什么静态错误会给我未定义的引用? 我用 pkg安装mysql57-server 并链接了 mysql_config --libs 帮助? 解决方案 链接静态库时,它们的顺序命令行问题(至少在FreeBSD上如此)。尝试在所有库之前/之后放置
..
我使用gcc 3.x编写了大约08年的代码。我现在正在尝试使用clang 3.4进行编译,但出现了我不理解的模板错误。这个想法是声明任意维数和精度的固定维数vec类型,然后基于这些定义vecPair类型。我不了解“ a.convert()”内部的模板类型名称S的用法如何遮盖了模板参数;它意味着使用参数,而不是重新声明它。任何信息将不胜感激! typedef unsigned int Uns
..
我有一些现有代码正在尝试使用clang 3.3和libc ++从 llvm.org 进行编译。简单的步骤即可检索另一个命令的结果。看来std :: filebuf不再提供FILE *构造函数,并且我尝试替换代码的所有想法都无法打开命令,即fb.is_open()始终返回false。 p> 根据我的发现,我将不得不使用 fb.open(cppcommand.c_str(),std :: ios
..
考虑以下简单程序: #include void foo(){} int main(){ std :: cout(foo);; } 它可以在 VC ++ ,但 g ++ & clang ++ 会给出编译错误。 请参阅实时演示此处( VC ++ ) 请观看实时演示这里( c
..
背景 我有时会遇到使用以下虚拟lambda捕获的代码(而不是例如(void)x; , ... foo(int / * x * /)或 ... foo([[maybe_unused]] int x) 在C ++ 17中),以纠正未使用的变量警告: void foo(int x) { [& x] {}(); } 现在,这并不是真正的补救方法,因为它通过了警告Lam
..
我从Mac OS X系统尝试交叉编译一个简单的C ++ 11程序,但是 clang ++ 甚至找不到简单的标头: test.cc #include int main(int argc,char * argv []) { 返回0; } 这是错误 $ clang ++ --std = c ++ 11 --stdlib = libc
..
当我使用clang编译一个简单的hello world程序时,在elf64文件的注释中,我仍然找到与GCC相关的信息。为什么?我正在使用clang而不是gcc。 我正在使用ubuntu 16.04。 username @ ubuntu:〜$ clang ++ -stdlib = libc ++ test.cpp username @ ubuntu:〜$ objdump- -ful
..