constexpr上的Intel vs GCC

用户名

以下代码可在Intel-2015上正常编译,但在gcc 4.8.3下无法编译谁是对的?

#include <iostream>

void f( int const& x ) { std::cout << x << std::endl; }

struct S
{
    static constexpr int ce = 42;
};

int main()
{
    f(S::ce);

    return 0;
}

g ++错误:

/tmp/ccOIxa2V.o: In function `main':
test_constexpr.cpp:(.text+0x36): undefined reference to `S::ce'
collect2: error: ld returned 1 exit status
妖怪

由于该函数f采用引用参数,因此必须定义S::ce引用可以在运行时指向的参数;编译器不能只用文字42代替参数。因此,您必须添加类外定义:

const int S::ce;

就像使用非constexpr变量一样。这将在运行时为该值分配一个内存位置,以供引用和编译时无法计算的其他内容使用。

有关更多信息,请参见此GCC错误报告(其中有注释解释了为什么它实际上不是错误)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

constexpr上的Intel vs GCC

来自分类Dev

通过引用调用`constexpr`成员函数-clang vs gcc

来自分类Dev

在非constexpr上下文中的constexpr函数中使用lambda:clang vs gcc

来自分类Dev

_mm_pause在Intel上的gcc用法

来自分类Dev

删除constexpr会更改gcc上数组的值

来自分类Dev

以下是VS2012的一些汇编代码,如何在gcc上编写呢?

来自分类Dev

constexpr返回数组,gcc警告

来自分类Dev

constexpr returning array, gcc warning

来自分类Dev

VC ++ vs GCC预处理器

来自分类Dev

手动组装vs GCC

来自分类Dev

constexpr:gcc比clang更努力评估constexpr

来自分类Dev

模板类中的静态函数:gcc vs VS

来自分类Dev

constexpr vs const vs constexpr const

来自分类Dev

GCC上的Makefile for C

来自分类Dev

在centos上构建gcc?

来自分类Dev

constexpr const vs constexpr变量?

来自分类Dev

GCC上x86 intel asm中方括号之前的偏移

来自分类Dev

GCC 4.9 constexpr错误的解决方法

来自分类Dev

GCC 4.9 constexpr错误的解决方法

来自分类Dev

clang vs gcc-优化包括运算符new

来自分类Dev

用clang vs gcc进行联合零初始化

来自分类Dev

在VS和gcc上计算出的不同值

来自分类Dev

与GCC 4 vs. 6相比ifstream的“小于”

来自分类Dev

使用变量模板的递归计算-gcc vs clang

来自分类Dev

用clang vs gcc进行联合零初始化

来自分类Dev

错误:跳转到标签“失败” [-fpermissive],GCC与VS

来自分类Dev

与GCC 4 vs. 6相比ifstream的“小于”

来自分类Dev

在Mac上安装GNU GCC

来自分类Dev

fltk抱怨Windows上的gcc