std :: unique_ptr结构成员的结构类型

P45*_*ent 5 c++ unique-ptr

struct A
{
    std::unique_ptr<A> a;
};
Run Code Online (Sandbox Code Playgroud)

标准允许的?我不认为这是容器类型,如std::set,但有什么特别的unique_ptr

Rei*_*ica 4

是的,这是明确允许的。C++14 (n4140) 20.8.1/5:

... 的模板参数T可能unique_ptr是不完整的类型。

也允许使用类似的措辞来表示std::shared_ptr和。std::weak_ptr