草庐IT

CLANG_ARGS

全部标签

c++ - clang 实现 char8_t 的方式是否存在缺陷,或者标准的某些暗角是否禁止优化?

clang8.0.0引入了对来自c++20的char8_t类型的支持。但是,我希望以下函数具有相同的编译器输出#includeboolcompare4(charconst*pcha,charconst*pchB,intn){returnstd::equal(pcha,pcha+4,pchB);}boolcompare4(char8_tconst*pchA,char8_tconst*pchB,intn){returnstd::equal(pchA,pchA+4,pchB);}但是,他们compile-std=c++2a-O2下到compare4(charconst*,charconst*

c++ - 为什么 GCC 不能消除多个继承函数的歧义(但 clang 可以)?

这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:Whydomultiple-inheritedfunctionswithsamenamebutdifferentsignaturesnotgettreatedasoverloadedfunctions?使用g++4.6.1无法在指定位置编译:enumEa{Ea0};enumEb{Eb0};structSa{voidoperator()(Ea){}};structSb{voidoperator()(Eb){}};structSbroken:Sa,Sb{};structSworks{voidoperator()(

c++ - 为什么 GCC 不能消除多个继承函数的歧义(但 clang 可以)?

这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:Whydomultiple-inheritedfunctionswithsamenamebutdifferentsignaturesnotgettreatedasoverloadedfunctions?使用g++4.6.1无法在指定位置编译:enumEa{Ea0};enumEb{Eb0};structSa{voidoperator()(Ea){}};structSb{voidoperator()(Eb){}};structSbroken:Sa,Sb{};structSworks{voidoperator()(

c++ - 如何使用 CLANG 作为解析器并使用 Python 作为脚本语言来解析 C++ 代码中的宏?

如果我在某些C++代码中有以下宏:_Foo(arg1,arg2)我想使用Python使用Clang和cindex.py提供的Python绑定(bind)来查找该宏的所有实例和范围。我不想直接在代码上使用Python中的正则表达式,因为这让我达到了99%,但不是100%。在我看来,要达到100%,您需要使用真正的C++解析器(如Clang)来处理人们执行语法正确和编译但对正则表达式没有意义的愚蠢事情的所有情况。我需要处理100%的情况,并且由于我们使用Clang作为我们的编译器之一,因此也可以将其用作此任务的解析器。鉴于以下Python代码,我能够找到Clangpython绑定(bind

c++ - 如何使用 CLANG 作为解析器并使用 Python 作为脚本语言来解析 C++ 代码中的宏?

如果我在某些C++代码中有以下宏:_Foo(arg1,arg2)我想使用Python使用Clang和cindex.py提供的Python绑定(bind)来查找该宏的所有实例和范围。我不想直接在代码上使用Python中的正则表达式,因为这让我达到了99%,但不是100%。在我看来,要达到100%,您需要使用真正的C++解析器(如Clang)来处理人们执行语法正确和编译但对正则表达式没有意义的愚蠢事情的所有情况。我需要处理100%的情况,并且由于我们使用Clang作为我们的编译器之一,因此也可以将其用作此任务的解析器。鉴于以下Python代码,我能够找到Clangpython绑定(bind

c++ - 在 Visual Studio 的 clang 中启用 C++14

我已经安装了clang3.7,我正在将它与VisualStudio一起使用。当我尝试编译时:autof(){return2;}我收到错误消息,说这是C++14的future。我已经尝试过:-std=c++14作为编译器参数,但随后出现错误:错误1​​错误:未知参数:'-std=c++14'C:\Users...\visualstudio2013\Projects\ConsoleApplication8\ConsoleApplication8\clang-cl.exeConsoleApplication8。任何想法如何在VisualStudio2013下的clang中启用c++14功能?

c++ - 在 Visual Studio 的 clang 中启用 C++14

我已经安装了clang3.7,我正在将它与VisualStudio一起使用。当我尝试编译时:autof(){return2;}我收到错误消息,说这是C++14的future。我已经尝试过:-std=c++14作为编译器参数,但随后出现错误:错误1​​错误:未知参数:'-std=c++14'C:\Users...\visualstudio2013\Projects\ConsoleApplication8\ConsoleApplication8\clang-cl.exeConsoleApplication8。任何想法如何在VisualStudio2013下的clang中启用c++14功能?

c++ - 使用 clang API 打印参数的类型 (ParmVarDecl)

我需要使用clangAPI在C++源文件中打印参数的类型。如果我在clang(ParmVarDecl*param)中有参数表示,我可以使用param->getNameAsString()打印参数的名称。我需要一个方法param->getTypeAsString(),但没有这样的方法。那么还有其他方法可以完成这项任务吗? 最佳答案 在llvmirc中得到了我的问题的答案:有一个方法std::stringclang::QualType::getAsString(SplitQualTypesplit)所以这对我有用:ParmVarDecl

c++ - 使用 clang API 打印参数的类型 (ParmVarDecl)

我需要使用clangAPI在C++源文件中打印参数的类型。如果我在clang(ParmVarDecl*param)中有参数表示,我可以使用param->getNameAsString()打印参数的名称。我需要一个方法param->getTypeAsString(),但没有这样的方法。那么还有其他方法可以完成这项任务吗? 最佳答案 在llvmirc中得到了我的问题的答案:有一个方法std::stringclang::QualType::getAsString(SplitQualTypesplit)所以这对我有用:ParmVarDecl

c++ - 将 std::shared_ptr 与 clang++ 和 libstdc++ 一起使用

我正在尝试使用libstdc++(4.6.1)在clang++(clang版本3.1(trunk143100))中使用std::shared_ptr。我有一个小演示程序:#includeintmain(){std::shared_ptrsome(newint);std::shared_ptrother(some);return0;}可以使用:clang++-std=c++0x-omainmain.cpp并给出以下错误输出:main.cpp:6:23:error:calltodeletedconstructorof'std::shared_ptr'std::shared_ptrother