struct PrivateBase : private std::enable_shared_from_this<PrivateBase> {
- std::weak_ptr<PrivateBase> get_weak() { return weak_from_this(); }
};
assert(p == q);
assert(!p.owner_before(q) && !q.owner_before(p)); // p and q share ownership
}
- {
- typedef std::shared_ptr<PrivateBase> APtr;
- typedef std::weak_ptr<PrivateBase> WeakAPtr;
- APtr a1 = std::make_shared<PrivateBase>();
- assert(a1.use_count() == 1);
- }
+ {
+ typedef std::shared_ptr<PrivateBase> APtr;
+ typedef std::weak_ptr<PrivateBase> WeakAPtr;
+ APtr a1 = std::make_shared<PrivateBase>();
+ assert(a1.use_count() == 1);
+ }
// Test LWG issue 2529. Only reset '__weak_ptr_' when it's already expired.
// http://cplusplus.github.io/LWG/lwg-active.html#2529.
// Test two different ways: