std::unordered_map 类型对象声明期间出现"field has incomplete type"错误
"field has incomplete type" error during std::unordered_map type object declaration
我只是想创建以下类:
class model
{
public:
.
.
.
unordered_map<string, material> materials;
.
.
.
}
注释后,此行程序编译成功。取消注释后产生以下错误:
In file included from glmw1.cpp:1:
In file included from ./global.hpp:3:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:54:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/ccomplex:39:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/complex:45:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/sstream:38:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/istream:38:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/ios:40:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/char_traits.h:39:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/stl_algobase.h:64:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/stl_pair.h:215:11: error: field has incomplete type 'material'
_T2 second; /// @c second is a copy of the second object
.
.
.
材料只是普通类。我还在我的程序中声明了一些"model"类型的对象(如果它有所作为(
您需要提供物质对象的定义才能获得它们的集合,您不能只是转发声明它们。编译器需要知道要为它们使用多少内存等。
相关文章:
- std::unordered_map 类型对象声明期间出现"field has incomplete type"错误
- 使用"std::enable_if_t" "function template has already been defined"
- 使用 GraphicsPath::AddString() 抱怨"class 'GraphicsPath' has no member 'AddString'"
- 'Project.exe has triggered a breakpoint.'
- C++ 结构数组 - "This declaration has no storage class or type specifier"
- Rcpp 'candidate function has different number of parameters (expected 0 but has 1)'
- 在 EAX 模式下加密数据时"program has stopped working"
- "xvalue has identity"是什么意思?
- 实现多线程后"Project.exe has triggered a breakpoint"
- 为什么删除执行组件指针会导致"Program.exe has triggered a breakpoint"
- this->field vs. this.field in C++
- "Field has incomplete type"引用自己的类的问题
- 如何在过载时强制"statement has no effect"警告==
- C++ 中的"this declaration has no storage class or type specifier"错误
- 如何在链接器设置和搜索目录更改后修复" '::iswblank' has not been declared"
- 具有非类型参数的类模板的静态成员的 gdb "static field value has been optimized out"
- 如何修复使用前向声明时的"field has incomplete type"错误
- 错误"field has incomplete type"
- C++系统文件位/stat.h 突然中断"error: field ‘st_atim’ has incomplete type"
- 即使在添加前向引用后也能获得"field has incomplete type"