如何解决C ++中的静态constexpr数组?
在下面,我想将有效的邻居定义为类成员属性:
struct Chessboard
{
...
vector<vector<Cell>> cells;
static int constexpr neighbours[][2] = {
{-1,-1},{-1,0},1},{0,{1,1}
};
bool isNeighbour() {
for (int row = 0; row < nRows; row++) {
for (int col = 0; col < nCols; col++) {
for (const int *d : neighbours) { // <---- Error!
if (cells[row][col].isMagic) {
return true;
}
}
}
}
}
};
不幸的是,在链接过程中,我得到了undefined reference to
Chessboard :: neighbours`。
正确的做法是什么?
看着这个question,似乎应该在.cpp
文件中声明静态成员,但是就我而言,我得到的行为完全相同。
例如,在Python中,我可以在类内声明静态成员。为什么C ++不允许?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。