clang相关内容
我想在CentOS 7上使用clang / clang ++的C ++ 11或C ++ 14.如何构建这个构建环境? 解决方案 本文教会如何在CentOS 7上构建C ++ 11构建环境:RHEL的EPEL repo提供Clang软件包,但没有C ++库软件包。所以,这些部分是有点麻烦由手建造。 Clang的定制C ++库是libc ++(libcxx)[1]。然后,libcxx还需要一个
..
我想知道是否可以将C ++ 0x lambda转换为ang块。到目前为止,我看到的任何事情都涉及到他们的分歧之间的讨论。我查看这个的主要原因是为 libdispatch 创建一个最终的包装,而我非常清楚 dispatch _ * _ f 函数,任何关于它们的使用的信息已经相当缺乏,与它们的块对应物相比。 到目前为止,我已经能够找到关于将C ++ lambda转换为函数指针,但这是更多的
..
我在ubuntu中使用apt-get安装了 clang ,我可以使用它来成功编译C文件。但是,我不知道如何编译C ++通过它。 c $ >用于C,命令 clang ++ 用于C ++。
..
有没有一个简单的方法从llvm ir到工作源代码? 具体来说,我想从一些简单的C ++代码开始修改POD (主要是int,float等数组),将其转换为llvm ir,执行一些简单的分析和翻译,然后将其转换回C ++代码? 真的不介意任何名字被改变,我只是希望能够在做机器依赖的优化之前对源代码进行修改。 解决方案 这里有一个问题...可能无法轻易地将IR表示为语言。 ,您
..
多年前,在使用GCC进行编译时,#include .h文件中的以下定义可以预处理以用于info.plist: #define MAJORVERSION 2 #define MINORVERSION 6 #define MAINTVERSION 4 CFBundleShortVersionString MAJORVERSION.
..
尝试在不同的编译器上编译下面的代码给我两个不同的结果: struct S {}; struct T {S S;}; int main(){} 正如你所看到的, T ,我有一个与之前定义的类 S 相同的对象。 在GCC 4.7.2上,我收到以下错误, code> $ : 错误:声明'ST :: S'[-fpermissive]
..
当我编译以下代码片段,我得到一个编译器错误clang,但不是与g ++ / MSVC: include template struct Const { explicit Const(T val):value(val){} T value; }; template struct var { exp
..
请考虑以下程序: #include using EnableIf = typename std :: enable_if :: type; template using DisableIf
..
我不确定是否是Clang 3.2中的错误或违反C ++ 03,但是对于模板类的模板化构造函数的显式实例化失败了,但模板类的模板成员函数的显式实例化成功。 / p> 例如,下面的编译没有clang ++和g ++的问题: template class Foo { public: template void Bar(co
..
在C ++中,关键字“inline”有两个目的。首先,它允许定义出现在多个翻译单元中。第二,这是编译器的一个提示,一个函数应该被内联在编译的代码。 我的问题:在GCC和Clang / LLVM生成的代码, “inline”是否具有任何功能是否内联?如果是,在什么情况下?还是完全忽略了提示?注意,这不是一个语言问题,它是一个特定于编译器的问题。 解决方案 [注意:不是C ++ / GC
..
此问题的Unicode文字可能无法在所有浏览器中正确显示。 clang now(> 3.3)支持变量名称中的Unicode字符 http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html#major-new-features 。 但是一些特殊字符仍然是禁止的。 int main(){ doubleα= 2 .
..
在从Visual Studio(2008)移植一大段C ++代码到Xcode(4.4+),我遇到了如下行: UNUSED_ALWAYS(someVar); UNUSED_ALWAYS(x) code> UNUSED(x))宏扩展为 x 这似乎使Visual C ++沉默。 对于Clang,我通常使用 #pragma未使用的x 指令。 p> UN
..
在OSX 10.9中,clang ++的默认 -stdlib 选项是 libc ++ ,这是Macport在构建包时使用的选项。 有没有办法告诉Macports使用 libstdc ++ 而不是? 通过Macports构建OpenCV,所以它使用 libstdc ++ ,但我想我会遇到一个需要这样做其他包以及 -stdlib = libstdc ++ p>如果您需要更好地控制各
..
我希望预处理器读入包含的本地头文件,但忽略系统头文件的包含。换句话说,如何让预处理器跳过以下形式的预处理指令: #include new-line ,但仍会处理以下格式的指令: #include“q-char-sequence”new-line 作为代码示例,请观察以下文件: #incl
..
我已经下载并建立clang版本3.0为了玩弄一些与C ++ 11功能,但是我得到这个错误(即使我 am 使用 -Wc ++ 11-extensions 标志)。 S:\llvm\code> clang ++ .exe -Wc ++ 11-extensions variadic.cpp variadic.cpp:4:19:warning:variadic模板是一个C ++ 11扩展[-W
..
代码的目的是找到表示0和1之间的值的32位浮点位模式的总数。在我看来这应该可以工作,但由于某种原因,Clang的汇编输出基本上是相当于 return 0; 。 我使用Clang 3.3和Clang 3.4.1编译,使用 -std = c ++ 1y -Wall -Wextra -pedantic -O2 和 -std = c ++ 1y -Wall -Wextra -pedantic -O3
..
我一直试图让C ++ 11工作,浏览不同的网站和Q / A后,我仍然有麻烦。我想使用clang与libstdc ++。它在clang状态中指示其支持修补程序 - http://clang.llvm.org/libstdc+ + 4.7-clang11.patch 。我从macports下载gcc4.7并在gcc4.7的头文件做相应的更改 我不使用libc ++的原因是libc ++和libc
..
这个问题是基于在GCC-4.6上适用于我的代码,但不是在C ++ 0x模式下的另一个使用CLang-3.0的用户。 template struct MyBase { // protected: T m; template MyBase(Args& ... x):m(std :: forward
..
我可以使用recursivevisitor类遍历clang AST的特定子树,但我想要做的是通过节点遍历clang AST节点。 提前感谢。 解决方案 实施成员方法 TraverseDecl(Decl * x), TraverseStmt(Stmt * x) code> TraverseType(QualType x)为您的RecursiveASTVisitor的派生类(例如My
..
在常见的IDE(选择一个)中,你经常有一个大纲视图,显示一个特定类的方法列表。 假设我有一个C ++接口类 IFoo.h 如下所示: #ifndef IFOO_H_ #define IFOO_H_ class IFoo { public: virtual〜IFoo(){} virtual void bar()= 0; }; #endif 如何(以编
..