在C++标准库中是否有一个类型,其语义与之相同optional,但其底层值存储在堆上?提升中有这样的类型吗?如果没有,您将如何实现此行为?
我想用RAII托管分支和值语义来构建树结构,如下所示:
struct tree{
int val;
heap_optional<tree> left;
heap_optional<tree> right;
};
Run Code Online (Sandbox Code Playgroud)
编辑:
想法是可选的将在lvalue引用上具有赋值运算符.具有默认赋值的上述结构将按原样工作,无需额外实现.如果我使用std::unique_ptr它只有移动赋值,那么我将不得不在包含结构中实现所有赋值运算符和朋友.
std::unique_ptr 是你在找什么.
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |