草庐IT

clang-instrumented

全部标签

c++ - 标识符字符集 (clang)

我从不使用clang。而且无意中发现了这段代码:#includevoidфункция(intпеременная){std::cout将编译正常:http://rextester.com/NFXBL38644(clang3.4(clang++-Wall-std=c++11-O2)).它是clang扩展吗??为什么?谢谢。UPD:我想问的是为什么clang会做出这样的决定?因为我从来没有发现有人想要比c++标准现在更多的字符的讨论(2.3,修订版3691) 最佳答案 与其说它是一个扩展,不如说它是Clang对标准的多字节字符部分的解

c++ - Clang 提示 : "pointer is initialized by a temporary array"

我有一个不同长度的(指向)数组的数组,我了解到我可以使用复合文字来定义它:constuint8_t*constminutes[]={(constuint8_t[]){END},(constuint8_t[]){1,2,3,4,5END},(constuint8_t[]){8,9,END},(constuint8_t[]){10,11,12,END},...};gcc很好地接受了这一点,但clang说:指针由一个临时数组初始化,它将在完整表达式结束时被销毁。这是什么意思?代码似乎可以正常工作,但话又说回来,许多事情似乎在指向不再分配的内存时可以正常工作。这是我需要担心的事情吗?(最终我真

c++ - clang 似乎没有链接到库

我将问题归结为以下示例:intmain(){try{throwfalse;}catch(boolx){if(x){return0;}else{return1;}}}在Coliru上生成以下错误:/tmp/main-c8b47a.o:Infunction`main':main.cpp:(.text+0xf):undefinedreferenceto`typeinfoforbool'/tmp/main-c8b47a.o:Infunction`GCC_except_table0':main.cpp:(.gcc_except_table+0x30):undefinedreferenceto`t

c++ - 将 cmake 编译器从 clang 更改为 g++ for mac

我正在使用一个非常不方便的软件,它不支持clang。所以,我需要更改我的cmake编译器,因为我几乎到处阅读,在这里HowcanImakeCMakeuseGCCinsteadofClangonMacOSX?,我试过:cmake-DCMAKE_CXX_COMPILER=/usr/bin/g++但是还是报错CMakeErroratCMakeLists.txt:59(message):GAMBIT不支持Clang编译器。请选择另一个编译器。--配置不完整,出现错误!有什么建议吗? 最佳答案 我发现在第一次运行CMake之前设置环境变量CC

c++ - Clang 3.1 和用户定义的文字

Clang3.1声称支持用户定义的文字。我可以这样定义:intoperator""_tryit(longdoublen){returnint(n);}但是当我尝试使用它时出现错误:intm=5_tryit;Invalidsuffix'_tryit'onintegerconstant 最佳答案 5在您的情况下不能隐式转换为longdouble。您需要将其更改为5.0以使其成为longdouble或自己显式调用该函数以使隐式转换起作用:intm=5.0_tryit;或intn=operator""_tryit(5);(均使用clang版

c++ - 需要更改 clang 的包含路径

当用clang构建时,它似乎使用gcc4.4.4版本的包含文件,而我希望它使用更新的。[~]locatemove.h/home/apps/gcc_versions/gcc-4_8_install/include/c++/4.8.3/bits/move.h/usr/include/c++/4.4.4/bits/move.h/usr/local/include/c++/4.7.1/bits/move.hgcc路径:`gcc-print-prog-name=cc1plus`-vignoringnonexistentdirectory"/apps/gcc_versions/gcc-4_8_in

c++ - Visual Studio 2015 更新 1,clang 错误

在我的项目(VisualStudio2015Update1)中尝试将新的clang与VisualCodegen结合使用时,出现以下错误:clang.exe:error:cannotspecify-owhengeneratingmultipleoutputfiles这只是一个新创建的项目,带有自动生成的main。我真的不知道该怎么办。感谢任何帮助。 最佳答案 不是很清楚您在做什么,但很明显您没有在跨平台节点中使用Clang项目模板之一。我可以通过使用Win32>Win32项目模板并将项目的平台工具集选择更改为“Clang3.7”来重现

c++ - Clang 与 GCC : Single-colon in Enum usage

以下代码使用g++-std=c++11编译,但不使用clang++-std=c++11。问题在此上下文中,单冒号“运算符”的含义是什么?澄清/编辑:GCC如何解释代码?如何让GCC不编译这段代码?(这里假设Clang遵循C++标准。)是否有针对此的标志?代码用g++-std=c++11main.cpp和clang++-std=c++11main.cpp编译。我正在使用GCC4.8和Clang6.0.0(主干)。#include#includeenumDir{LEFT,RIGHT};intmain(intargc,char**argv){//Interestingline:Noticet

c++ - 转换为 `const Y` 不适用于 clang 上的 `R&&`

下面的代码可以用g++(GCC)4.7.120120721编译,但是最近构建的clang版本3.2(trunk)失败。structY{};structX{operatorconstY()const{returnY();}};voidf(Y&&y){}intmain(){f(X());return0;}将转换运算符更改为operatorY()const就足够了使代码在两个编译器上都能编译。在这种情况下,哪个编译器实际上符合标准?做什么标准实际上是这样说的?要求的逐字错误:bla.cpp:14:5:error:noviableconversionfrom'X'to'Y'f(X());^~~

c++ - Xcode 4.6/Clang 4.2 找不到 C++11 header

我试图在iOS项目中包含一些C++11header,但Xcode/Clang找不到它们。我正在尝试包括,和其他一些人。但它提示说在构建过程中找不到它们(尽管我右键单击并“跳转到定义”加载文件......)。如何让我的项目使用C++11头文件?LexicalorPreprocessorIssue'memory'filenotfoundLexicalorPreprocessorIssue'functional'filenotfound我的项目设置是:C++LanguageDialect=C++11[-std=c++11]C++StandardLibrary=libc++(LLVMC++st