gpt4 book ai didi

c++ - 遍历 constexpr 数组

转载 作者:行者123 更新时间:2023-12-03 06:53:55 26 4
gpt4 key购买 nike

我有以下文件:

测试.hpp

class Test {
static constexpr const char* array[] {
"hello",
"world",
"!"
};
public:
void do_stuff();

};

测试.cpp

void Test::do_stuff() {
for(int i = 0; i < 3; ++i) {
std::cout << array[i];
}
}

int main() {
Test object;
object.do_stuff();

}

失败并出现以下链接错误:

undefined reference to `Test::array'

那么我怎样才能定义一个 constexpr 数组然后遍历它呢?

最佳答案

static 成员需要离线声明或显式inline:

来自 C++17:

inline static constexpr const char* array[] {

其他解决方案:

#include <iostream>

class Test {
static constexpr const char* array[] {
"hello",
"world",
"!"
};
public:
void do_stuff();

};

constexpr char* Test::array[];

void Test::do_stuff() {
for(int i = 0; i < 3; ++i) {
std::cout << array[i];
}
}

int main() {
Test object;
object.do_stuff();

}

关于c++ - 遍历 constexpr 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64277349/

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