不知道如何正确解析typedef

时间:2013-07-01 15:30:04

标签: c++ typedef

我认为在以下代码中似乎存在typedef的循环依赖...有什么方法可以解决这个问题吗?这是我的问题的简化表达。无论我把typedef语句放在哪里,它都不想正确解析。

struct Item {
    int id;
    ItemList* ptrToList;
}

typedef std::list<Item> ItemList;

3 个答案:

答案 0 :(得分:3)

您可以像这样解决(在MSVC2012下编译)

struct Item;
typedef std::list<Item> ItemList;

struct Item
{
    Item* item;
    ItemList list;
};

注意:我的结构与你的结构略有不同,但它仍然说明了这一点。

答案 1 :(得分:1)

您只能声明一个类型名称:

struct Item;

然后将其余部分组合起来。

答案 2 :(得分:0)

使用前瞻声明:

struct Item;
typedef std::list<struct Item> ItemList;
struct Item {
    int id;
    ItemList* ptrToList;
};