我有一个简单的对象:
struct TimeObject {
private:
UInt64 m_currentTime;
bool m_isStarted;
}
Run Code Online (Sandbox Code Playgroud)
此对象在另一个结构中的地图中使用:
std::map<Utf8String, TimeObject> m_myMap; // *
Run Code Online (Sandbox Code Playgroud)
并在struct的构造函数中实例化:
m_myMap = new std::map<Utf8String, TimeObject>();
Run Code Online (Sandbox Code Playgroud)
似乎说定义(*所在的位置)会导致以下错误: 错误:命名空间'std'中的'map'没有命名模板类型
问题的第一部分是:理解错误.当您了解自己可以解决问题时.我的第一个猜测是结构TimeObject是在同一个文件中创建的,并且在编译这一行时没有定义它的定义,所以它会抛出一个错误.即使结构未在其他结构中声明,但发生了这种情况,但如下所示:
struct TimeObject{}
struct MyNewObject
{
private: std::map<Utf8String,TimeObject> m_myMap;
}
Run Code Online (Sandbox Code Playgroud)
那么这个特殊的错误尖叫是什么?我应该在结构中定义TimeObject,以便它理解吗?
| 归档时间: |
|
| 查看次数: |
7369 次 |
| 最近记录: |