CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 25 Jul 2025 10:17:01 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/memory/weak_ptr/lock/
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 25 Jul 2025 10:17:01 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"8ab2-KFGsec5/BX/h9F7/WODOUWClHbM"
Content-Encoding: gzip
Returns a shared_ptr with the information preserved by the weak_ptr object if it is not expired.
If the weak_ptr object has expired (including if it is empty), the function returns an empty shared_ptr (as if default-constructed).
Because shared_ptr objects count as an owner, this function locks the owned pointer, preventing it from being released (for at least as long as the returned object does not releases it).
This operation is executed atomically.
Otherwise, a shared_ptr object with the information preserved by the weak_ptr.
Output:
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
<memory>
classes
- allocator
-
allocator_arg_tC++11
-
allocator_traitsC++11
- auto_ptr
- auto_ptr_ref
-
bad_weak_ptrC++11
-
default_deleteC++11
-
enable_shared_from_thisC++11
-
owner_lessC++11
-
pointer_traitsC++11
- raw_storage_iterator
-
shared_ptrC++11
-
unique_ptrC++11
-
uses_allocatorC++11
-
weak_ptrC++11
enum classes
-
pointer_safetyC++11
-
functions
-
addressofC++11
-
alignC++11
-
allocate_sharedC++11
-
const_pointer_castC++11
-
declare_no_pointersC++11
-
declare_reachableC++11
-
dynamic_pointer_castC++11
-
get_deleterC++11
-
get_pointer_safetyC++11
- get_temporary_buffer
-
make_sharedC++11
- return_temporary_buffer
-
static_pointer_castC++11
-
undeclare_no_pointersC++11
-
undeclare_reachableC++11
- uninitialized_copy
-
uninitialized_copy_nC++11
- uninitialized_fill
- uninitialized_fill_n
-
objects
-
allocator_argC++11
-
weak_ptr
-
weak_ptr::~weak_ptrC++11
-
weak_ptr::weak_ptrC++11
member functions
-
weak_ptr::expiredC++11
-
weak_ptr::lockC++11
-
weak_ptr::operator=C++11
-
weak_ptr::owner_beforeC++11
-
weak_ptr::resetC++11
-
weak_ptr::swapC++11
-
weak_ptr::use_countC++11
-
non-member overloads
-
swap (weak_ptr)C++11
-
public member function
<memory>
std::weak_ptr::lock
shared_ptr<element_type> lock() const noexcept;
Lock and restore weak_ptr
If the weak_ptr object has expired (including if it is empty), the function returns an empty shared_ptr (as if default-constructed).
Because shared_ptr objects count as an owner, this function locks the owned pointer, preventing it from being released (for at least as long as the returned object does not releases it).
This operation is executed atomically.
Parameters
noneReturn value
If the object is weak_ptr::expired, a default-constructed shared_ptr object.Otherwise, a shared_ptr object with the information preserved by the weak_ptr.
Example
|
|
Output:
*sp1: 20 *sp2: 20 |
See also
- weak_ptr::reset
- Reset pointer (public member function)
- weak_ptr::expired
- Check if expired (public member function)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us