小编suu*_*uut的帖子

C++ 14静态constexpr成员数组在链接时失败

我在static constexpr属性方面遇到了一些困难:它与enum class成员类型的整数类型一起使用,但是当我尝试使用静态初始化的整数数组时,它会在链接说出undefined reference to S::a内部时失败main.

这是clang 3.9或g ++ 6.3和ld 2.27.90; 以及所有这一切-std=c++14.

以下是重现此内容的最快速片段:

struct S
{
  static constexpr int a[5] = {0};
};


int main()
{
  S s{};
  [[gnu::unused]] int b = s.a[0]; // force S stuff to be emitted
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

感谢您对此情况的任何建议.

c++ linker constexpr c++14

3
推荐指数
1
解决办法
159
查看次数

标签 统计

c++ ×1

c++14 ×1

constexpr ×1

linker ×1