c++ - 是否有具有底层堆分配的可选类型

标签 c++

是否有一种类型,在C++标准库中,其语义与optional相同,但其底层值存储在堆中? boost里有这种类型吗?如果不是,您将如何实现此行为?

我想制作具有 RAII 管理分支和值语义的树结构,如下所示:

struct tree{
    int val;
    heap_optional<tree> left;
    heap_optional<tree> right;
};

编辑:

想法是可选的将在 lvalue 引用上有一个赋值运算符。上面的结构,默认赋值,不需要额外的实现就可以正常工作。如果我使用 std::unique_ptr 它只有移动赋值,所以我必须在包含结构中实现所有赋值运算符和 friend 。

最佳答案

std::unique_ptr正是您要找的。

关于c++ - 是否有具有底层堆分配的可选类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50705071/

相关文章:

c# - 实现这个的最佳数据结构是什么? [C# 中的嵌套属性]

c++ - 将字符串转换为数学评估

c++ - 如何使 QLineEdit 在 textChanged 信号中发出前一个和当前文本

c++ - 如何使用可视化调试器快速查看原生 cpp 类?

c++ - 控制 Linux 守护进程的 API

c++ - 检查堆栈

c++ - InterlockedIncrement 用法

c++ - 树上的多线程

c++ - 如何使用 C++ 智能指针?

c++ - 将字节数组转换为 in_addr 或 in6_addr 和字节序