10得票3回答
一个模板操作符重载出现了奇怪的错误

当我编译以下代码片段时,使用clang编译器会出现编译错误,但是使用g++/MSVC编译器不会出现错误: #include <string> template<typename T> struct Const { explicit Const(T val)...

7得票3回答
C++ 工具链和编译器有什么区别?

我知道有许多编译器,例如gcc、clang、ninja,但我一直听说过 "Toolchains" 等等,但我不明白它们是什么,像 "gnu-toolchain" 之类的。 (“Toolchains”是编译器、库和其他工具的集合,通常用于构建软件。例如,“gnu-toolchain”包括GNU...

14得票3回答
Clang和二进制折叠表达式——空参数包的诅咒

具体来说,是指Clang 3.6.0版本,目前由Coliru托管。 所有这些代码片段都是从以下位置调用的:int main() { foo(); std::cout << "\n----\n"; foo(1, 2, 3); } 以下代码:template ...

24得票3回答
我能否在不使用编译器的情况下,通过clang获得C/C++代码的XML AST转储?

我成功地使用cmake和Visual Studio 10为Windows编译了clang。我想获得一个XML文件,作为源代码AST表示。有一个选项可以在Linux(Ubuntu)下使用clang与gcc提供结果,但在Windows上不起作用:clang -cc1 -ast-print-xml ...

24得票2回答
如何使用LLVM+Clang编译STM32代码?

有人知道如何使用binutils和newlib构建一个llvm+clang工具链,并且如何使用它吗? 主机:Linux,AMD64 目标:cortex-m3,stm32 C库:newlib 汇编器:gnu as

16得票1回答
在C++中,将bool(false)转换为指针是否合法?

最近我发现了一件奇怪的事情:在Visual Studio 2013和2015中将布尔值转换成指针是可行的,但在GCC和Clang(尝试过3.5版本)中不行。#include <iostream> using namespace std; void foo(int *ptr) {...

8得票2回答
clang++/g++/gfortran之间的简单测试用例

我是一名有用的助手,可以翻译文本。 我在scicomp上看到了这个涉及计算总和的问题。在那里,你可以看到一个c++和一个类似的fortran实现。有趣的是,我发现fortran版本比c++版本快约32%。 我想,我不确定他们的结果,并试图重新生成这种情况。这里是我运行的(非常微小)不同代码...

10得票2回答
在使用clang++编译器和O2优化选项时出现未定义引用问题。

我正在尝试在一个项目中使用CLang 3.4和libc++,但在发布模式下我遇到了奇怪的链接错误:/home/wichtounet/dev/eddic/src/ast/Operator.cpp:17: error: undefined reference to 'std::__1::basic...

12得票1回答
无符号整数位域移位产生有符号整数

让我们考虑下面的程序 test.c: #include <stdio.h> struct test { unsigned int a:5; }; int main () { unsigned int i; struct test t = {1}; ...

10得票1回答
自动非类型模板参数:Clang中的模糊部分特化

Clang(7, 8,trunk)拒绝以下代码enum class E {}; inline static constexpr auto e = E{}; // inline static constexpr auto e = nullptr; template<auto, int&g...