45得票1回答
GCC接受`constexpr struct {} s;`,但Clang拒绝。谁是正确的?

以下代码可以在GCC编译器下编译通过。constexpr struct {} s; 但是,Clang拒绝它并显示以下错误: error: default initialization of an object of const type 'const struct (anonymous...

37得票4回答
为什么这个未使用的变量没有被优化掉?

我在Godbolt的CompilerExplorer上尝试了一下,并想知道某些优化有多好。我的最小可用示例是:#include <vector> int foo() { std::vector<int> v {1, 2, 3, 4, 5}; retur...

51得票3回答
为什么Clang会优化掉这段代码?

代码的目的是查找表示0到1之间的值的32位浮点位模式的总数。看起来这应该有效,但由于某种原因,来自Clang的汇编输出基本等同于return 0;。 我使用-std=c++1y -Wall -Wextra -pedantic -O2和-std=c++1y -Wall -Wextra -ped...

63得票2回答
为什么clang的stdbool.h包含#define false false

在编译错误指向那里后,我注意到clang的stdbool.h文件包含了以下内容(除其他内容外):#define bool bool #define false false #define true true 它们包含在一个#ifdef块中,该块间接强制执行__cplusplus,因此即使s...

21得票2回答
Clang无法推断模板参数,而gcc/g++可以。哪个是正确的?

我一直在尝试使用clang编译一个项目(使用gcc/g++没有问题),但编译卡在了模板调用上。 我尝试创建了一个最简单的类似代码来展示相同的错误信息。以下是代码: #include <vector> #include <utility> #include <io...

10得票1回答
在OS X 10.8上使用CMAKE、Clang和C++v11技术的问题

OS X 1.8 CMAKE版本2.8.9 Clang $ clang -v Apple clang version 4.0 (tags/Apple/clang-421.10.60) (based on LLVM 3.1svn) Target: x86_64-apple-darwin12....

27得票1回答
Clang:将所有警告升级为错误,除了...

在我目前从事的项目中,我们决定使用-Werror标志,因为我们以前的“无警告!”政策没有达到预期的效果。 然而,这带来了一个问题: API不再能够以一种既能够被常规构建工具链标记为弃用,又不会破坏构建的方式来标记。 所以我的问题就是: 是否有类似于-Werror-no-${someth...

9得票3回答
g++与手动优化在复数乘法中的比较

在我们的代码库中,有许多类似于j*ω*X的操作,其中j是虚数单位,ω是实数,X是复数。实际上,很多循环都可能看起来像这样: #include <complex> #include <vector> void mult_jomega(std::vector<st...

10得票2回答
clang:错误:在Mac OSX Mavericks上不支持选项“-static-libgcc”。

我正在尝试在我的Mac Mini上使用Mac OSX Mavericks从源代码编译 jogl,但是出现了以下错误: clang: error: unsupported option '-static-libgcc' on Mac OSX Mavericks 我已经安装了XCode 5.0.1...

134得票3回答
为什么当循环限制为959时,简单的循环得到了优化,但是当限制为960时却没有?

考虑这个简单的循环:float f(float x[]) { float p = 1.0; for (int i = 0; i < 959; i++) p += 1; return p; } 如果您使用gcc 7(快照)或clang(trunk)编译并带有-march...