C++11 常量静态成员函数 constexpr 数组

2016-01-07 22:11:15 +08:00
 corvus
// xx.h
class XX {
    ...
public:
    static constexpr char *xarr[2] = {"Spring", "Fall"};
    static const char *arr[2];
   ...
}
// xx.cpp
constexpr char* xarr[2];
const char* arr[2]=["Spring", "Fall"];
// main.cpp
...
for (auto str : XX::arr)
    ...
for (auto str : XX::xarr)
    ...
...

上面的代码在 VS2015 中能够编译通过,但运行的话出现这两种情况:

然后我又试了一下

static constexpr char carr[2] = {'X', 'Y'};

这个正常运行。。。
话说这是肿么回事, constexpr 与char*元素的数组不能一起用么?

1351 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/249146

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX