std::experimental::weak_ptr::weak_ptr
From cppreference.com
                    
                                        
                    < cpp | experimental | weak ptr
                    
                                                            
                    | constexpr weak_ptr(); | (1) | (library fundamentals TS) | 
| weak_ptr( const weak_ptr& r ); | (2) | (library fundamentals TS) | 
| template< class Y >  weak_ptr( const weak_ptr<Y>& r ); | (2) | (library fundamentals TS) | 
| template< class Y >  weak_ptr( const std::experimental::shared_ptr<Y>& r ); | (2) | (library fundamentals TS) | 
| weak_ptr( weak_ptr&& r ); | (3) | (library fundamentals TS) | 
| template< class Y >  weak_ptr( weak_ptr<Y>&& r ); | (3) | (library fundamentals TS) | 
Constructs a new weak_ptr that potentially shares an object with r.
1) Default constructor. Constructs empty 
weak_ptr.
2) Constructs new 
weak_ptr which shares an object managed by r. If r manages no object, *this manages no object too. The templated overloads don't participate in overload resolution unless either Y* is implicitly convertible to T*, or Y is the type "array of N U" for some type U and some number N, and T is the type "array of unknown bound of (possibly cv-qualified) U". 
3) Move constructors. Moves a 
weak_ptr instance from r into *this. After this, r is empty and r.use_count()==0. The templated overload doesn't participate in overload resolution unless Y* is implicitly convertible to T*. | Contents | 
[edit] Parameters
| r | - | a std::experimental::shared_ptr or std::experimental::weak_ptr that will be viewed by this std::experimental::weak_ptr | 
[edit] Exceptions
noexcept specification:  
noexcept
  [edit] Example
| This section is incomplete Reason: no example | 
[edit] See also
| creates a new weak_ptr(public member function of std::weak_ptr) | |
| assigns the weak_ptr(public member function of std::weak_ptr) |