草庐IT

clang-omp

全部标签

c++ - clang/g++ 与友元函数的区别

为什么下面的代码在g++中编译良好,但在clang上却出错?#includeclassObject{};classPrint{public:templateinlinefriendstd::basic_ostream&operator&out,constObject&){return(out证明链接:g++/clang++当我将友元函数移动到全局命名空间时,代码为两个编译器编译得很好(clang++/g++)。在这种情况下,哪种实现更符合C++标准? 最佳答案 Clang在这里是正确的。在类内部定义的友元函数只能通过对其参数使用参数

c++ - clang 提示 constexpr 函数以防 switch 语句

structX{enumclassE{A,B};staticconstexprXA(){returnX{E::A};}staticconstexprXB(){returnX{E::B};}constexproperatorE()const{returna;}Ea;};templatestructY{voidf(){//withoutthislineclangerrs//constauto&x=this->x;switch(x){caseX::A():caseX::B():default:return;}}Xx=X::A();};intmain(){Y{}.f();}如果片段中没有标记行

c++ - 如何遍历clang AST的所有节点?

我可以使用recursivevisitor类遍历clangAST的特定子树,但我想做的是逐个节点遍历clangAST。如果有人能帮助我,我将不胜感激。提前致谢。 最佳答案 RecursiveASTVisitor可以做你需要的。实现membermethodsTraverseDecl(Decl*x)、TraverseStmt(Stmt*x)和TraverseType(QualTypex)用于您的RecursiveASTVisitor`派生类(例如MyClass)会成功的。结合起来,这三种方法将带您到达AST中的每个节点。例子:class

c++ - std::unique_ptr 的 clang 错误

我有一个名为IList的基础对象。然后我有VectorList,它继承了IList。然后我有这样的功能:std::unique_ptrfactory(){autovlist=std::make_unique();returnvlist;}这在gcc下编译没有问题,但是clang给出以下错误:test_file.cc:26:9:error:noviableconversionfrom'unique_ptr>'to'unique_ptr>'returnvlist;如何正确处理此类错误? 最佳答案 看起来(您的)Clang在这方面仍然遵循

c++ - 为什么 gcc 警告 decltype(main()) 而不是 clang?

采用以下代码:intmain(){decltype(main())x=0;returnx;}gcc提示:main.cpp:Infunction'intmain()':main.cpp:8:19:warning:ISOC++forbidstakingaddressoffunction'::main'[-Wpedantic]decltype(main())x=0;^main.cpp:8:19:warning:ISOC++forbidstakingaddressoffunction'::main'[-Wpedantic]但不是clang。那么decltype(main())会引发这个错误吗?

windows - 如何将 std=c++11 标志添加到 clang-cl?

我尝试在Windows下用clang-cl编译一个C++11程序。Clang-cl是clang的包装器,可以更兼容cl(VisualStudio编译器)。我尝试添加-std=c++11和/std=c++11但都被拒绝了。这并不奇怪,因为cl没有C++11标志。但是我不能通过clang-cl使用C++11功能。如何在clang-cl中启用C++11支持? 最佳答案 在前面提到的文档中说:http://clang.llvm.org/docs/UsersManual.html#clang-clclangdefaultstoC++11for

windows - 在 Windows 上构建 Clang : DiagnosticCommonKinds. inc header 不存在

我正尝试按照http://clang.llvm.org/get_started.html中的说明使用MSVisualStudio2013在Windows8.1上构建Clang在“使用VisualStudio”部分。我已经检查了llvm到D:\Current\llvm,clang到D:\Current\llvm\tools\clang,创建D:\Current\llvm_build并运行"D:\ProgramFiles(x86)\cmake-3.3.0-win32-x86\bin\cmake.exe"-llvm_build目录中的G“VisualStudio12”..\llvm。LLVM

windows - 为什么 Windows 上的 llvm-config 不为 clang++.exe 发出正确的参数?

我不是经验丰富的LLVM用户,但我正在尝试在Windows上编译LinuxLLVM项目。该项目是GHDL。因为适用于Windows的即用型LLVM安装程序没有捆绑llvm-config,所以我需要从源代码编译LLVM和clange。该项目需要LLVM3.5。首先,我下载了llvm-3.5.2和clang-3.5.2并使用CMake将其转换为VisualStudio2013项目。然后我用VS2013编译了一下。原始makefile调用llvm-config。生成的字符串传递给clang++:clang++-c-I`/usr/lib/llvm-3.5/bin/llvm-config--in

c++ - 在 Windows 上使用 Clang 链接 SDL2 时出错 "LNK1561: entry point must be defined"

我正在尝试在Windows上使用clang来编译和链接SDL2应用程序。这样做的原因是试图让我的开发环境与其他使用OSX和XCode(使用clang编译)的团队成员保持一致。由于VisualC++编译器比clang编译器严格得多,我可能会提交不会在clang下编译的更改。我宁愿不必安装VS2015来使用实验性LLVM构建环境:(链接已删除)我已经在Windows上安装了LLVM/clang工具(不是从源代码构建的,只是从这里下载二进制文件:(链接已删除))并且可以使用clang成功构建和运行“helloworld”控制台应用程序。我想做的是拥有一个批处理文件,允许我定期构建和链接cla

windows - 在 Windows 上编译 Clang

我按照http://clang.llvm.org/get_started.html中的说明进行操作我用MSVC2010编译了llvm和clang的最新主干。现在我可以用Clang编译简单的程序,但是当我尝试编译这个程序时,我遇到了很多错误。这是程序:#includeintmain(){return0;}下面是一些错误:Infileincludedfromhello.cpp:1:InfileincludedfromC:\ProgramFiles\MicrosoftVisualStudio10.0\VC\include\algorithm:6:InfileincludedfromC:\Pr