std::unique_ptr结构成员转换为结构类型
std::unique_ptr structure member to the structure type
是否
struct A
{
std::unique_ptr<A> a;
};
标准允许吗?我不认为它适用于像std::set
这样的容器类型,但unique_ptr
有什么特别之处吗?
是的,它是明确允许的。C++14(n4140(20.8.1/5:
unique_ptr
的模板参数T
可以是不完整类型。
std::shared_ptr
和std::weak_ptr
也允许使用类似的措辞。
当然可以。这基本上是某种路径的实现。
根据参考:
std::unique_ptr可以为不完全类型T构造,例如以便于在Pimpl习语中用作句柄。如果默认如果使用deleter,则T必须在代码中deleter被调用,这发生在析构函数的move赋值中运算符,并重置std::unique_ptr的成员函数。
所以是的,std::unique_ptr
可以这样使用。
相关文章:
- 在C++中将结构转换和存储为二进制
- 如何大致将 cpp 代码结构转换为 python
- 如何将可变大小的结构转换为字符数组
- 尝试传递结构数组,但出现"无法将'结构'转换为'结构*'错误
- 我可以安全地将浮点数的结构转换为浮点数组吗C++?
- 如何将结构转换为字符串?
- 如何将C++结构转换为 C# 等效结构?
- 将结构转换为布尔值
- 将具有不同字段的结构转换为 uint8 的数组
- 将 constexpr 结构转换为运行时结构
- 将结构转换为类
- 我必须将记录结构转换为一类,并且不断遇到多个错误
- 如何将 ANSI C 结构转换为 C++ 类,但保持其 ANSI C 友好
- 将 C++ 中的结构转换为 Java 中的类
- 将结构转换为 constexpr 数组uint8_t
- 将大型结构转换为小型C
- c++正在将未知结构转换为字符串
- C++隐式将平凡可构造的结构转换为成员
- 将C++联合结构转换为 VB6
- C到C++:将结构转换为类