是否有一种类型,在C++标准库中,其语义与optional
相同,但其底层值存储在堆中? boost里有这种类型吗?如果不是,您将如何实现此行为?
我想制作具有 RAII 管理分支和值语义的树结构,如下所示:
struct tree{
int val;
heap_optional<tree> left;
heap_optional<tree> right;
};
编辑:
想法是可选的将在 lvalue
引用上有一个赋值运算符。上面的结构,默认赋值,不需要额外的实现就可以正常工作。如果我使用 std::unique_ptr
它只有移动赋值,所以我必须在包含结构中实现所有赋值运算符和 friend 。
最佳答案
std::unique_ptr
正是您要找的。p>
关于c++ - 是否有具有底层堆分配的可选类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50705071/