CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sun, 20 Jul 2025 13:02:48 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/memory/shared_ptr/operator=/
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 20 Jul 2025 13:02:48 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"9503-YrWe49wd0WIZ4dSnNentCue6PbM"
Content-Encoding: gzip
The copy assignments (1) adds the object as a shared owner of x's assets, increasing their use_count.
The move assignments (2) transfer ownership from x to the shared_ptr object without altering the use_count. x becomes an empty shared_ptr (as if default-constructed).
Likewise, the move assignments from other managed pointer types (3) also transfer ownership, and are initialized with set a use count of 1.
Additionally, in all cases above, a call to this function has the same side effects as if shared_ptr's destructor was called before its value changed (including the deletion of the managed object if this shared_ptr was unique).
You cannot assign the value of a pointer directly to a shared_ptr object. You may either use make_shared or member reset instead.
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
-
shared_ptr
-
shared_ptr::~shared_ptrC++11
-
shared_ptr::shared_ptrC++11
member functions
-
shared_ptr::getC++11
-
shared_ptr::operator boolC++11
-
shared_ptr::operator->C++11
-
shared_ptr::operator*C++11
-
shared_ptr::operator=C++11
-
shared_ptr::owner_beforeC++11
-
shared_ptr::resetC++11
-
shared_ptr::swapC++11
-
shared_ptr::uniqueC++11
-
shared_ptr::use_countC++11
-
non-member overloads
-
operator<< (shared_ptr)C++11
-
relational operators (shared_ptr)C++11
-
swap (shared_ptr)C++11
-
- Reference
- <memory>
- shared_ptr
- operator=
public member function
<memory>
std::shared_ptr::operator=
copy (1) | shared_ptr& operator= (const shared_ptr& x) noexcept;template <class U> shared_ptr& operator= (const shared_ptr<U>& x) noexcept; |
---|---|
move (2) | shared_ptr& operator= (shared_ptr&& x) noexcept;template <class U> shared_ptr& operator= (shared_ptr<U>&& x) noexcept; |
move from (3) | template <class U> shared_ptr& operator= (auto_ptr<U>&& x);template <class U, class D> shared_ptr& operator= (unique_ptr<U,D>&& x); |
shared_ptr assignment
The move assignments (2) transfer ownership from x to the shared_ptr object without altering the use_count. x becomes an empty shared_ptr (as if default-constructed).
Likewise, the move assignments from other managed pointer types (3) also transfer ownership, and are initialized with set a use count of 1.
Additionally, in all cases above, a call to this function has the same side effects as if shared_ptr's destructor was called before its value changed (including the deletion of the managed object if this shared_ptr was unique).
You cannot assign the value of a pointer directly to a shared_ptr object. You may either use make_shared or member reset instead.
Parameters
- x
- An object of a managed pointer type.
U* shall be implicitly convertible to T* (where T is shared_ptr's template parameter).
Return value
*thisExample
|
|
Output:
*foo: 30 *bar: 20 |
See also
- shared_ptr::shared_ptr
- Construct shared_ptr (public member function)
- shared_ptr::reset
- Reset pointer (public member function)
- shared_ptr::get
- Get pointer (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