@@ -10,16 +10,20 @@ helpviewer_keywords: ["std::addressof [C++]", "std::align [C++]", "std::allocate
1010||||
1111| -| -| -|
1212| [ addressof] ( #addressof ) | [ align] ( #align ) | [ allocate_shared] ( #allocate_shared ) |
13- | [ const_pointer_cast] ( #const_pointer_cast ) | [ declare_no_pointers] ( #declare_no_pointers ) | [ declare_reachable] ( #declare_reachable ) |
14- | [ default_delete] ( #default_delete ) | [ destroy_at] ( ../standard-library/memory-functions.md#destroy_at ) | [ destroy] ( ../standard-library/memory-functions.md#destroy ) |
15- | [ destroy_n] ( ../standard-library/memory-functions.md#destroy_n ) | [ dynamic_pointer_cast] ( #dynamic_pointer_cast ) | [ get_deleter] ( #get_deleter ) |
16- | [ get_pointer_safety] ( #get_pointer_safety ) | [ get_temporary_buffer] ( #get_temporary_buffer ) | [ make_shared] ( #make_shared ) |
17- | [ make_unique] ( #make_unique ) | [ owner_less] ( #owner_less ) | [ return_temporary_buffer] ( #return_temporary_buffer ) |
18- | [ static_pointer_cast] ( #static_pointer_cast ) | [ swap (C++ Standard Library)] ( #swap ) | [ undeclare_no_pointers] ( #undeclare_no_pointers ) |
19- | [ undeclare_reachable] ( #undeclare_reachable ) | [ uninitialized_copy] ( #uninitialized_copy ) | [ uninitialized_copy_n] ( #uninitialized_copy_n ) |
20- | [ uninitialized_default_construct] ( ../standard-library/memory-functions.md#uninitialized_default_construct ) | [ uninitialized_default_construct_n] ( ../standard-library/memory-functions.md#uninitialized_default_construct_n ) | [ uninitialized_fill] ( #uninitialized_fill ) |
21- | [ uninitialized_fill_n] ( #uninitialized_fill_n ) | [ uninitialized_move] ( ../standard-library/memory-functions.md#uninitialized_move ) | [ uninitialized_move_n] ( ../standard-library/memory-functions.md#uninitialized_move_n ) |
22- | [ uninitialized_value_construct] ( ../standard-library/memory-functions.md#uninitialized_value_construct ) | [ uninitialized_value_construct_n] ( ../standard-library/memory-functions.md#uninitialized_value_construct_n ) ||
13+ | [ atomic_compare_exchange_strong] ( #atomic_compare_exchange_strong ) | [ atomic_compare_exchange_weak] ( #atomic_compare_exchange_weak ) | [ atomic_compare_exchange_strong_explicit] ( #atomic_compare_exchange_strong_explicit ) |
14+ | [ atomic_compare_exchange_weak_explicit] ( #atomic_compare_exchange_weak_explicit ) | [ atomic_exchange] ( #atomic_exchange ) | [ atomic_exchange_explicit] ( #atomic_exchange_explicit ) |
15+ | [ atomic_is_lock_free] ( #atomic_is_lock_free ) | [ atomic_load] ( #atomic_load ) | [ atomic_load_explicit] ( #atomic_load_explicit ) |
16+ | [ atomic_store] ( #atomic_store ) | [ atomic_store_explicit] ( #atomic_store_explicit ) | [ const_pointer_cast] ( #const_pointer_cast ) |
17+ | [ declare_no_pointers] ( #declare_no_pointers ) | [ declare_reachable] ( #declare_reachable ) | [ default_delete] ( #default_delete ) |
18+ | [ destroy_at] ( #destroy_at ) | [ destroy] ( #destroy ) | [ destroy_n] ( #destroy_n ) |
19+ | [ dynamic_pointer_cast] ( #dynamic_pointer_cast ) | [ get_deleter] ( #get_deleter ) | [ get_pointer_safety] ( #get_pointer_safety ) |
20+ | [ get_temporary_buffer] ( #get_temporary_buffer ) | [ make_shared] ( #make_shared ) | [ make_unique] ( #make_unique ) |
21+ | [ owner_less] ( #owner_less ) | [ return_temporary_buffer] ( #return_temporary_buffer ) | [ static_pointer_cast] ( #static_pointer_cast ) |
22+ | [ swap (C++ Standard Library)] ( #swap ) | [ undeclare_no_pointers] ( #undeclare_no_pointers ) | [ undeclare_reachable] ( #undeclare_reachable ) |
23+ | [ uninitialized_copy] ( #uninitialized_copy ) | [ uninitialized_copy_n] ( #uninitialized_copy_n ) | [ uninitialized_default_construct] ( #uninitialized_default_construct ) |
24+ | [ uninitialized_default_construct_n] ( #uninitialized_default_construct_n ) | [ uninitialized_fill] ( #uninitialized_fill ) | [ uninitialized_fill_n] ( #uninitialized_fill_n ) |
25+ | [ uninitialized_move] ( #uninitialized_move ) | [ uninitialized_move_n] ( #uninitialized_move_n ) | [ uninitialized_value_construct] ( #uninitialized_value_construct ) |
26+ | [ uninitialized_value_construct_n] ( #uninitialized_value_construct_n ) | [ uses_allocator_v] ( #uses_allocator_v ) ||
2327
2428## <a name =" addressof " ></a > addressof
2529
@@ -123,6 +127,89 @@ The zero or more arguments that become the objects.
123127
124128The function creates the object `shared_ptr<Type>`, a pointer to `Type(Args...)` as allocated and constructed by *Alloc*.
125129
130+ ## <a name="atomic_compare_exchange_strong"></a> atomic_compare_exchange_strong
131+
132+ ```cpp
133+ template<class T>
134+ bool atomic_compare_exchange_strong(
135+ shared_ptr<T>* p, shared_ptr<T>* v, shared_ptr<T> w);
136+ ```
137+
138+ ## <a name =" atomic_compare_exchange_weak " ></a > atomic_compare_exchange_weak
139+
140+ ``` cpp
141+ template <class T >
142+ bool atomic_compare_exchange_weak (
143+ shared_ptr<T >* p, shared_ptr<T >* v, shared_ptr<T > w);
144+ ```
145+
146+ ## <a name="atomic_compare_exchange_strong_explicit"></a> atomic_compare_exchange_strong_explicit
147+
148+ ```cpp
149+ template<class T>
150+ bool atomic_compare_exchange_strong_explicit(
151+ shared_ptr<T>* p, shared_ptr<T>* v, shared_ptr<T> w,
152+ memory_order success, memory_order failure);
153+ ```
154+
155+ ## <a name =" atomic_compare_exchange_weak_explicit " ></a > atomic_compare_exchange_weak_explicit
156+
157+ ``` cpp
158+ template <class T >
159+ bool atomic_compare_exchange_weak_explicit (
160+ shared_ptr<T >* p, shared_ptr<T >* v, shared_ptr<T > w,
161+ memory_order success, memory_order failure);
162+ ```
163+
164+ ## <a name="atomic_exchange"></a> atomic_exchange
165+
166+ ```cpp
167+ template<class T>
168+ shared_ptr<T> atomic_exchange(shared_ptr<T>* p, shared_ptr<T> r);
169+ ```
170+
171+ ## <a name =" atomic_exchange_explicit " ></a > atomic_exchange_explicit
172+
173+ ``` cpp
174+ template <class T >
175+ shared_ptr<T> atomic_exchange_explicit (shared_ptr<T >* p, shared_ptr<T > r, memory_order mo);
176+ ```
177+
178+ ## <a name="atomic_is_lock_free"></a> atomic_is_lock_free
179+
180+ ```cpp
181+ template<class T>
182+ bool atomic_is_lock_free(const shared_ptr<T>* p);
183+ ```
184+
185+ ## <a name =" atomic_load " ></a > atomic_load
186+
187+ ``` cpp
188+ template <class T >
189+ shared_ptr<T> atomic_load (const shared_ptr<T >* p);
190+ ```
191+
192+ ## <a name="atomic_load_explicit"></a> atomic_load_explicit
193+
194+ ```cpp
195+ template<class T>
196+ shared_ptr<T> atomic_load_explicit(const shared_ptr<T>* p, memory_order mo);
197+ ```
198+
199+ ## <a name =" atomic_store " ></a > atomic_store
200+
201+ ``` cpp
202+ template <class T >
203+ void atomic_store (shared_ptr<T >* p, shared_ptr<T > r);
204+ ```
205+
206+ ## <a name="atomic_store_explicit"></a> atomic_store_explicit
207+
208+ ```cpp
209+ template<class T>
210+ void atomic_store_explicit(shared_ptr<T>* p, shared_ptr<T> r, memory_order mo);
211+ ```
212+
126213## <a name =" const_pointer_cast " ></a > const_pointer_cast
127214
128215Const cast to shared_ptr.
@@ -1281,6 +1368,13 @@ for (; n>0; (void)++first, --n)
12811368 typename iterator_traits<ForwardIterator>::value_type(); return first;
12821369```
12831370
1371+ ## <a name =" uses_allocator_v " ></a > uses_allocator_v
1372+
1373+ ``` cpp
1374+ template <class T , class Alloc>
1375+ inline constexpr bool uses_allocator_v = uses_allocator<T, Alloc>::value;
1376+ ```
1377+
12841378## See also
12851379
12861380[\<memory>](../standard-library/memory.md)<br/>
0 commit comments