Replaces the value in a std::experimental::weak_ptr with the value in another
            std::experimental::weak_ptr, transferring ownership
            from the supplied std::experimental::weak_ptr to *this.
          
weak_ptr& operator=(weak_ptr&& other) noexcept;
weak_ptr& operator=(weak_ptr&& other) noexcept{ weak_ptr temp(std::move(other)); this->swap(temp); return *this; }
            #include <experimental/atomic>