使用std :: deque代替vector时出现错误“ C2027使用未定义类型”

冰人
#include <string>
#include <deque>
//#include <vector>
#include <map>

namespace xmltree {
    class XMLNode {
        // other fields, methods...
        std::deque<XMLNode> _childs;
...

如果定义_childsstd::vector<XMLNode>代码将编译,但是std::deque出现错误:

C2027使用未定义类型

std :: deque在这里出了什么问题以及如何解决?

马克斯·沃尔默

为什么std::deque失败

std::deque需要完整的元素类型。声明时您XMLNode还不完整。解决此问题的通常方法是使用某种(智能)指针。指向不完整类型的指针是完整的。(无论它们指向什么,所有指针的大小都相同。)

因此,一种选择是std::deque<std::unique_ptr<XMLNode>>,但是根据您的方案,您可能需要使用其他工具。

请参阅有关的文档std::deque

为什么要std::vector编译

std::vector自C ++ 17在特殊情况下以来,允许在实例化期间使用不完整的元素类型。具体来说,当不完整类型的分配器完成时,它允许它。在您的示例中似乎就是这种情况。请注意,std::vector只有在元素类型完整后才能使用,例如添加,调整大小,访问元素等。

请参阅有关的文档std::vector

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误C2027:使用未定义的类型-如何声明类

来自分类Dev

C ++:使用“ std”时出现“体系结构x86_64的未定义符号”错误

来自分类Dev

当包含标题时,为什么在代码中出现“使用未定义类型”错误?

来自分类Dev

在C ++中使用库时出现“未定义的引用”

来自分类Dev

使用Bower安装Jquery时出现“未定义”错误

来自分类Dev

使用 lapply 时出现未定义的列错误

来自分类Dev

正在使用std :: vector :: operator [](size)的地址在C ++ 11中未定义的行为

来自分类Dev

使用QWebChannel时未定义的属性和返回类型

来自分类Dev

在C ++中使用内联方法时出现未定义的符号错误

来自分类Dev

在python中使用“使用std :: vector”时出现SWIG参数错误

来自分类Dev

在python中使用“使用std :: vector”时出现SWIG参数错误

来自分类Dev

使用std :: string时出现分段错误

来自分类Dev

C ++使用未定义类型

来自分类Dev

C ++使用未定义类型

来自分类Dev

使用 mapbox 加载样式时出现“未捕获的类型错误:无法读取未定义的属性‘属性’”

来自分类Dev

如何修复编译错误:从Outlook使用Excel VBA时未定义用户定义类型?

来自分类Dev

使用未定义的类型

来自分类Dev

使用未定义的类型

来自分类Dev

未定义的类型错误使用json.encode将数组从php传递到Javascript时

来自分类Dev

未定义的类型错误使用json.encode将数组从php传递到Javascript时

来自分类Dev

未定义的类型错误使用json.encode将数组从php传递到Javascript时

来自分类Dev

类型错误:地图未定义当使用谷歌地图 API 时

来自分类Dev

使用 MUI 按钮时:类型错误:无法读取未定义的属性“borderRadius”

来自分类Dev

类型错误:使用 Redux 向数组添加值时,无法读取未定义的属性“值”

来自分类Dev

C:使用extern时未定义对变量的引用

来自分类Dev

在C ++中使用库时“未定义的引用”

来自分类Dev

在C ++中使用rust库时的未定义参考

来自分类Dev

在C ++中使用curl时的未定义符号

来自分类Dev

错误C2079'std :: pair <Dummy <int>,Dummy <int >> :: first'使用未定义的类'Dummy <int>'

Related 相关文章

  1. 1

    错误C2027:使用未定义的类型-如何声明类

  2. 2

    C ++:使用“ std”时出现“体系结构x86_64的未定义符号”错误

  3. 3

    当包含标题时,为什么在代码中出现“使用未定义类型”错误?

  4. 4

    在C ++中使用库时出现“未定义的引用”

  5. 5

    使用Bower安装Jquery时出现“未定义”错误

  6. 6

    使用 lapply 时出现未定义的列错误

  7. 7

    正在使用std :: vector :: operator [](size)的地址在C ++ 11中未定义的行为

  8. 8

    使用QWebChannel时未定义的属性和返回类型

  9. 9

    在C ++中使用内联方法时出现未定义的符号错误

  10. 10

    在python中使用“使用std :: vector”时出现SWIG参数错误

  11. 11

    在python中使用“使用std :: vector”时出现SWIG参数错误

  12. 12

    使用std :: string时出现分段错误

  13. 13

    C ++使用未定义类型

  14. 14

    C ++使用未定义类型

  15. 15

    使用 mapbox 加载样式时出现“未捕获的类型错误:无法读取未定义的属性‘属性’”

  16. 16

    如何修复编译错误:从Outlook使用Excel VBA时未定义用户定义类型?

  17. 17

    使用未定义的类型

  18. 18

    使用未定义的类型

  19. 19

    未定义的类型错误使用json.encode将数组从php传递到Javascript时

  20. 20

    未定义的类型错误使用json.encode将数组从php传递到Javascript时

  21. 21

    未定义的类型错误使用json.encode将数组从php传递到Javascript时

  22. 22

    类型错误:地图未定义当使用谷歌地图 API 时

  23. 23

    使用 MUI 按钮时:类型错误:无法读取未定义的属性“borderRadius”

  24. 24

    类型错误:使用 Redux 向数组添加值时,无法读取未定义的属性“值”

  25. 25

    C:使用extern时未定义对变量的引用

  26. 26

    在C ++中使用库时“未定义的引用”

  27. 27

    在C ++中使用rust库时的未定义参考

  28. 28

    在C ++中使用curl时的未定义符号

  29. 29

    错误C2079'std :: pair <Dummy <int>,Dummy <int >> :: first'使用未定义的类'Dummy <int>'

热门标签

归档