首页 > 解决方案 > 为什么 std::vector 中允许不完整类型?

问题描述

在下面的代码中,虽然Node在声明时是不完整的类型,但vector我的 C++ 编译器 (g++) 不会报告任何警告或错误。

#include <vector>

int main() {
    struct Node {
      std::vector<Node> children;
    };
    Node n;
    Node n2;
    n.children.push_back(n2);
}

编译器如何处理这个?

标签: c++vectorstruct

解决方案


推荐阅读