gpt4 book ai didi

c++ - constexpr 数组作为模板非类型参数的 MSVC 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:07:06 25 4
gpt4 key购买 nike

我试图了解我所看到的是 MSVC 编译器错误还是我的误解。我正在尝试使用一个简单的编译时字符串文字模板参数,如下所示:

constexpr const char teststr[] = "teststr";

template <const char *N>
struct Test {
static constexpr const char *name = N;
};

using TEST = Test<teststr>;

但是,MSVC 报告 teststr 参数不是编译时表达式:error C2975: 'Test': 'N' 的无效模板参数,预期的编译时常量表达式(在 using TEST 行)。

这是我的错误,还是编译器的错误?我使用的是 Visual Studio 2017 版本 15.1。

最佳答案

这是一个compiler bug .

此外,它是一个C++11 feature允许在模板参数中使用内部链接的对象地址,而不是 C++14。

关于c++ - constexpr 数组作为模板非类型参数的 MSVC 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48159022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com