是否存在具有基础堆分配的可选类型

时间:2018-06-05 16:40:12

标签: c++

C ++标准库中是否有一个类型,其语义与struct tree{ int val; heap_optional<tree> left; heap_optional<tree> right; }; 相同,但其底层值存储在堆上?提升中有这样的类型吗?如果没有,您将如何实现此行为?

我想用RAII托管分支和值语义来构建树结构,如下所示:

lvalue

编辑:

这个想法是可选的std::unique_ptr引用上有赋值运算符。具有默认赋值的上述结构将按原样工作,无需额外实现。如果我使用-L - forwards your local port over ssh to the remote server. -N - no shell execution. Just maintain the session to keep the port forwarding alive. user.guy - this is the user name for ssh login. V's give you the verbose output of the ssh command. More V's means more verbose but maximum of 3 V's (i.e. -vvv) should be used. 它只有移动赋值,那么我必须在包含结构中实现所有赋值运算符和朋友。

2 个答案:

答案 0 :(得分:7)

std::unique_ptr正是您要找的。

答案 1 :(得分:0)

显然,我正在寻找的那种设备称为mat-iconvalue_ptrclone_ptr。似乎人们直觉地希望复制指针是一个廉价的操作,或者总是意味着指针分配。我把最热烈的答案留给了正确答案。

编辑:

标准委员会对此类功能进行了明显的讨论。 https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/YnUvKJATgD0