【发布时间】:2021-12-30 21:57:49
【问题描述】:
我有以下代码sn-p:
#include <vector>
struct X {
std::vector<X> v;
X(std::vector<X> vec) : v{vec} {}
};
int main() {
X{{}};
}
在本地编译和运行这个 sn-p 会导致源自 X 的构造函数的堆栈溢出。使用gdb 进行检查显示构造函数以某种方式递归调用自身,但这没有意义,因为我没有递归调用它。为什么会发生这种情况,我可以做些什么来解决它?
【问题讨论】:
-
X 包含几个(向量的)X?这是树形结构吗?
-
@Sebastian 是的,它是一个递归树结构。
标签: c++