gpt4 book ai didi

C++ 递归类型定义

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

<分区>

为什么下面的代码有效? struct test 包含一个 test vector ,所以下面的代码 compiles (IDEOne) :

#include <iostream>
#include <vector>

using namespace std;

struct test {
vector<test> a;
};

int main() {
// your code goes here
test t;
if (t.a.size() > 0)
return -1;
else if (t.a[0].a[0].a.size() > 0)
return 1;
return 0;
}

编译器如何处理结构以便可以测试 t.a[0].a[0].a.size()?我重复 .a[0] 的频率是否有限制?


编辑:这个问题的答案声称这是未定义的行为:Are C++ recursive type definitions possible, in particular can I put a vector<T> within the definition of T?

=> 这令人困惑

=> 也许我的问题是重复的

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