草庐IT

clang-omp

全部标签

c++ - 函数指针的模板参数推导(g++ & ICC vs Clang++ & VC++)

考虑以下程序:#includetemplatevoidfoo(constT*x){x();}voidbar(){std::cout它在clang++和VC++上编译良好,但g++给出以下编译器错误(参见现场演示here)main.cpp:Infunction'intmain()':main.cpp:10:9:error:nomatchingfunctionforcallto'foo(void(&)())'foo(bar);^main.cpp:3:6:note:candidate:templatevoidfoo(constT*)voidfoo(constT*x){^~~main.cpp:

c++ - std::chrono::duration 的运算符/和带有 clang 的自定义类型

考虑一个自定义类型,它用于乘除持续时间的特定实例:#include#includeclassFoo{};usingDuration=std::chrono::seconds;inlineDurationoperator*(Durationd,Foo){std::cout此代码使用gcc编译时没有警告,但使用clang(wandbox)时失败Infileincludedfromprog.cc:1:/opt/wandbox/clang-7.0.0/include/c++/v1/chrono:1259:81:error:notypenamed'type'in'std::__1::common

c++ - 我如何告诉 clang-format 缩进可见性修饰符?

我希望我的可见性修饰符(public、protected和private)由当前保留它们的clang-format缩进级别作为类声明。我在默认格式选项的转储中查找了indent和visibility,但找不到任何内容。 最佳答案 来自Clang-FormatStyleOptionsdocumentation:AccessModifierOffset(int)Theextraindentoroutdentofaccessmodifiers,e.g.public:.因此,将适当的条目添加到您的.clang-format。例如,Acces

c++ - 为什么 Clang++ 编译器无法编译以下可变参数模板代码?

#include#include#include#includetemplatestructtest{usingargs_type=std::tuple;args_typex;templatevoidcallme(std::index_sequence){int_[]={(std::get(x).std::tuple_element::type::~type(),true)...};}};intmain(){}错误信息是clang-3.7-std=gnu++1y-Wc++14-extensionstest.cpptest.cpp:15:56:error:expected')'int_[

c++ - 使用 Google Test、Clang 和 libc++ 构建测试时遇到问题

我尝试使用以下CMake配置构建GoogleTest:$CMAKE_CXX_COMPILER="clang++"CMAKE_CXX_FLAGS="-std=c++11-stdlib=libc++-U__STRICT_ANSI__"cmake../sourceBuilding显示CMake选择了正确的编译器,但我的编译器标志没有通过:$VERBOSE=1make.../Users/jfreeman/local/bin/clang++-I/Users/jfreeman/work/googletest/source/include-I/Users/jfreeman/work/googlete

c++ - 如何从 std::basic_ios 为 OS X 上的 clang 获取文件描述符?

我正在将一些代码移植到DarwinOSX,作为更改的一部分,我们从gcc转到clang编译器。代码中有一个2005年的函数,在网上多处贴过。它为几个不同的旧版本GCC提供了功能,我已经编辑了除最后一个版本之外的所有功能,v3.4.0或更高版本。该代码取决于两个GCC特定类:__gnu_cxx::stdio_filebuf和__gnu_cxx::stdio_sync_filebuf。//!Similartofileno(3),buttakingaC++streamasargumentinsteadofa//!FILE*.Notethatthereisnowayforthelibraryt

c++ - 候选模板被忽略 : substitution failure(error with clang but not g++)

我有一个替换失败的问题,一些类似问题的答案对我没有帮助。代码如下:templateclassReference{public://...templateusingmatrix_t=int[r][c];Reference(constmatrix_t&mat){}};templateclassPartition{//...public://...templateusingmatrix=int[r][c];templatevoidreadPattern(constmatrix&pattern){//...}//...};我这样调用这个模板函数:intmain(){//...constintD

c++ - gcc 与 clang、msvc 和 icc : Is this function call ambiguous?

我能得到的所有编译器都同意这很好:templateautofoo(Check,T...)->void;templateautofoo(int,T...)->void;intmain(){foo(7,"");}但是,根据gcc,以下代码(带有不能从函数参数推导的前导模板参数)是不明确的:templateautobar(Check,T...)->void;templateautobar(int,T...)->void;intmain(){bar(7,"");//ambiguousaccordingtogccbar(7);//justfine}另一方面,clang、msvc和icc对此非常满

c++ - 缩小从 `int`(常量表达式)到 `unsigned int` 的转换 - MSVC vs gcc vs clang

constexprinti=100;structF{F(unsignedint){}};intmain(){F{i};}上面的代码片段:使用-Wall-Wextra-Wpedantic在g++7上编译没有警告。使用-Wall-Wextra-Wpedantic在clang++4上编译没有警告。无法在MSVC2017上编译:conversionfrom'constint'to'unsignedint'requiresanarrowingconversion问:这里MSVC是不是错了?liveexampleongodbolt.orginti=100;structF{F(unsignedint

c++ - 如何告诉 clang 将调试符号放入可执行二进制文件中?

这个问题在这里已经有了答案:Whydoesa2-stagecommand-linebuildwithclangnotgenerateadSYMdirectory?(1个回答)关闭5年前。我的编译命令在macOSSierra中是clang-std=c11-g-Wall-Werror-fsanitize=address-file.c-ofile编译后,它还会生成一个额外的file.dSYM文件,其中包含所有调试符号。但是,当我使用WSL或其他*nix系统时,它不会生成这样的文件,调试符号被嵌入到可执行二进制文件中。所以我只是想知道有没有办法在macOS中使用clang做同样的事情。