如何解析类型中的循环链接
How to resolve cyclical links in typedefs?
我需要解决这个问题:
class MyType; // this thing doesn't help here
typedef std::stack<boost::variant<int, std::function<shared_ptr<MyType>()>>> MyType;
我得到一个像这样的错误
error C2371: 'MyType': redefinition; different basic types
任何帮助都将是感激的。
编辑:这可以很容易地完成使用结构作为代理:
struct MyStruct;
typedef std::stack<boost::variant<int, std::function<shared_ptr<MyStruct>()>>> MyType;
struct MyStruct {
MyType data;
};
你不能这样做,因为你所要求的会导致无限递归:
typedef std::stack<boost::variant<int, std::function<shared_ptr<MyType>()>>> MyType;
MyType a;
展开为:
std::stack<boost::variant<int, std::function<shared_ptr<
std::stack<boost::variant<int, std::function<shared_ptr<
std::stack<boost::variant<int, std::function<shared_ptr<
*Infinitely many more here*
()>>>>
()>>>>
()>>> a;
相关文章:
- 下面是我为检测链接列表中的循环而制作的代码
- 如何使用由for循环创建的向量向量构建链接列表
- 我如何使我的循环转到char*阵列的尽头,并将每个城市都放在链接的列表中(城市被划分为白色的空间)
- 永远循环的链接列表破坏者
- C++循环链接列表 - 删除所有节点
- 从自定义链接列表中打印值时,循环陷入无限时
- 做循环静态链接的LIB会导致更大的输出尺寸
- 我写了一个函数来删除循环链接列表中的第 1 个节点,但输出显示无限次"55 44 33 22 11 99",那么我该如何解决呢?
- 我的链接列表打印功能进入无限循环
- 该功能检测循环链接列表的时间复杂性是什么?
- 为什么一个循环需要电流>链接 !=NULL 和一个电流 != NULL 作为我的链表?
- 使用循环在链接列表的前面插入一个节点
- 标准库中的双链接循环列表
- 努力将双重链接的通用列表转移到循环中.(segfault)
- 删除循环链接列表中的项目
- 循环包含导致链接错误的语句
- 正在从循环双链接列表中删除节点
- 标准模板库列表 - 双重链接或循环链接
- 通过两次链接同一个库来解决循环依赖关系
- 如何解析类型中的循环链接