草庐IT

clang-omp

全部标签

c++ - 这是一个clang错误还是我不了解C++的东西?

在查看this时问题我用clang试了一下,遇到了一个奇怪的情况。下面的例子:#includeclassACP{public:ACP(){}operatorconststd::string()const{returnstd::string();}//operatorstd::string()const{returnstd::string();}在coliru上编译良好使用gcc,但使用clang失败。至少我认为这个例子没有问题-这是clang中的一个错误,还是有一个规则可以实际解释clang错误并且gcc是错误的?clang的错误如下所示:clang-std=c++14-O2-Wall

c++ - Clang 的 -Wall 和 -Wextra 中包含哪些警告?

我发现Clang的文档很差。我还没有找到很多可用的Clang警告标志列表。我对C/C++警告特别感兴趣,但这是一个普遍的问题。GCC在此处列出并描述了警告,还列出了-Wall和-Wextra中包含的内容:https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-OptionsClang的-Wall和-Wextra包含哪些警告标志?我可以搜索每个版本的Clang发行说明,看看每次引入了哪些新的警告标志(例如http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNote

c++ - 在 NetBeans 中集成 Clang?

在NetBeans中集成Clang涉及哪些步骤?我还希望看到来自NetBeans的Clang错误和警告消息。这将主要用于C开发。 最佳答案 NetBeans7.2原生支持Clang。只需打开选项窗口,切换到C/C++部分,然后添加一个新的工具集。在BaseDirectory中键入:/usr/bin,然后在组合框中选择“CLang”。我一直在使用Clang构建我的项目,NetBeans与Clang完美配合。 关于c++-在NetBeans中集成Clang?,我们在StackOverflow

c++ - Clang 中的规范类型是什么?

我有一个基于clang的简单header解析器,并且我从某个来源获取typedef。struct_poire{intg;tomaterouge;};typedefstruct_poirekudamono;解析后我有一个clang::TypedefDecl然后我得到typedef的clang::QualType与clang::TypedefDecl::getUnderlyingType()使用QualType如果我使用getAsString方法,我可以找到“struct_poire”std::string。这一切都好。问题是如果我尝试查看此类型是否为规范类型,使用QualType::is

c++ - clang++ C++11 调用

虽然这里有一些关于C++11对clang的支持的问题,但我似乎无法让clang++吃掉我的C++11代码。$clang++--versionclangversion2.9(tags/RELEASE_29/final)Target:x86_64-pc-linux-gnuThreadmodel:posix根据theclangC++11statuspage我应该至少有部分支持(例如直角括号),但它拒绝我测试的所有功能。是否有任何开关告诉clang使用C++11?示例测试:$clang++-stdlib=libstdc++cpp11.cppcpp11.cpp:16:33:error:aspac

c++ - 为什么scons下clang不显示颜色输出?

使用Scons构建时,我可以将其配置为使用clang,如下所示:env["CXX"]="clang++"但是,它似乎没有保留clang输出的颜色信息。如何让scons保持颜色? 最佳答案 根据clangdocumentation,颜色仅在检测到具有颜色功能的终端时启用。SCons不会自动将所有环境变量传递给运行编译器的进程,您已明确传递它们。而且TERM不会传递给clang。将以下内容添加到您的SConstruct中,颜色应该会再次起作用:importosenv['ENV']['TERM']=os.environ['TERM']

c++ - 使用 omp_set_num_threads() 将线程数设置为 2,但 omp_get_num_threads() 返回 1

我有以下使用OpenMP的C/C++代码:intnProcessors=omp_get_max_threads();if(argv[4]!=NULL){printf("argv[4]:%s\n",argv[4]);nProcessors=atoi(argv[4]);printf("nProcessors:%d\n",nProcessors);}omp_set_num_threads(nProcessors);printf("omp_get_num_threads():%d\n",omp_get_num_threads());exit(0);如您所见,我正在尝试根据命令行上传递的参数设置

c++ - 如果 clang++ 和 g++ 不兼容 ABI,那么二进制中的共享库使用什么?

clang++和g++不兼容ABI,即使对于像标准容器这样的核心,根据例如clang++网站。Debian附带C++共享库,即libboost等...,它们是用~something编译的,并且使用这两种编译器的用户程序通常都可以工作,并且库名称不会与用于它们的编译器混淆。当您安装clang时,debian不会去拉入您系统上安装的每个C++库的重复版本。有什么关系?clang链接发行版提供的C++库的能力是否比(谢天谢地谨慎)编译器开发人员描述的要强得多? 最佳答案 evenforthingsascoreasstandardconta

c++ - 当在 std::list<shared_ptr> 的 C++14 初始化列表中间抛出时,GCC(但不是 Clang)下的内存泄漏

考虑以下程序:#include#include#include#includeclassFoo{public:Foo(){if(s_ct==0){throwstd::bad_alloc();}--s_ct;fprintf(stderr,"ctor%p\n",this);}~Foo(){fprintf(stderr,"dtor%p\n",this);}private:staticints_ct;};intFoo::s_ct=2;intmain(){try{std::list>l={std::make_shared(),std::make_shared(),std::make_shared

c++ - GCC、Clang 和 IBM 在如何执行依赖于模板参数的名称查找方面存在分歧。哪一个是对的?

考虑一下我在IBM网站上找到的这个例子:#includeusingnamespacestd;voidf(double){coutvoidg(Ta){f(123);h(a);}voidf(int){cout(234);}voidh(int){cout它会打印什么?我改编此示例的IBM文档,可用here,说它会打印:Functionf(double)Functionh(double)这样做的基本原理是模板参数相关的名称查找是在i()实例化之前执行的,因此它会找到h(double)而不是h(int)。当我使用GCC4.4.1编译它时,它会打印:Functionf(double)Functio