C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- std::addressof
- std::allocator_traits
- std::unique_ptr
- std::scoped_allocator_adaptor
- std::auto_ptr
- std::destroy_at
- std::destroy
- std::destroy_n
- std::uninitialized_move
- std::uninitialized_value_construct
- std::owner_less
- std::shared_ptr
- std::to_address
- std::assume_aligned
- std::make_obj_using_allocator
- C å å管çåº
- ä½å±å å管ç
- std::pmr::memory_resource
- std::allocator_traits<Alloc>::allocate
- std::default_delete
- std::allocator_arg_t
- std::allocator_arg
- std::weak_ptr
- std::enable_shared_from_this
- std::bad_weak_ptr
- std::allocator
- std::pointer_traits
- std::uses_allocator
- std::uses_allocator_construction_args
- std::uninitialized_construct_using_allocator
- std::pmr::polymorphic_allocator
- std::pmr::get_default_resource
- std::pmr::set_default_resource
- std::pmr::new_delete_resource
- std::pmr::null_memory_resource
- std::pmr::synchronized_pool_resource
- std::pmr::unsynchronized_pool_resource
- std::pmr::monotonic_buffer_resource
- std::pmr::pool_options
- std::raw_storage_iterator
- std::get_temporary_buffer
- std::return_temporary_buffer
- std::uninitialized_copy
- std::uninitialized_fill
- std::uninitialized_default_construct
- std::uninitialized_copy_n
- std::uninitialized_fill_n
- std::uninitialized_move_n
- std::uninitialized_default_construct_n
- std::uninitialized_value_construct_n
- std::construct_at
- std::align
- 注é
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >卿å å管ç > std::allocator_traits
std::allocator_traits
| å®ä¹äºå¤´æä»¶ <memory>
|
||
| template< class Alloc > struct allocator_traits; |
(C++11 èµ·) | |
allocator_traits ç±»æ¨¡æ¿æä¾è®¿é®åé
å¨ (Allocator) åç§å±æ§çæ ååæ¹å¼ãæ å容å¨åå
¶ä»æ ååºç»ä»¶éè¿æ¤æ¨¡æ¿è®¿é®åé
å¨ï¼è¿ä½¿å¾è½ä»¥ä»»ä½ç±»ç±»å为åé
å¨ï¼åªè¦ç¨æ·æä¾ç allocator_traits ç¹åå®ç°ææè¦æ±çåè½ã
é»è®¤çéç¹å allocator_traits 嫿ä¸åæåï¼
æåç±»å
| Â | |
| ç±»å | å®ä¹ |
allocator_type
|
Alloc |
value_type
|
Alloc::value_type |
pointer
|
è¥åå¨å为 Alloc::pointer ï¼å¦å为 value_type* |
const_pointer
|
è¥åå¨å为 Alloc::const_pointer ï¼å¦å为 std::pointer_traits<pointer>::rebind<const value_type> |
void_pointer
|
è¥åå¨å为 Alloc::void_pointer ï¼å¦å为 std::pointer_traits<pointer>::rebind<void> |
const_void_pointer
|
è¥åå¨å为 Alloc::const_void_pointer ï¼å¦å为 std::pointer_traits<pointer>::rebind<const void> |
difference_type
|
è¥åå¨å为 Alloc::difference_type ï¼å¦å为 std::pointer_traits<pointer>::difference_type |
size_type
|
è¥åå¨å为 Alloc::size_type ï¼å¦å为 std::make_unsigned<difference_type>::type |
propagate_on_container_copy_assignment
|
è¥åå¨å为 Alloc::propagate_on_container_copy_assignment ï¼å¦å为 std::false_type |
propagate_on_container_move_assignment
|
è¥åå¨å为 Alloc::propagate_on_container_move_assignment ï¼å¦å为 std::false_type |
propagate_on_container_swap
|
è¥åå¨å为 Alloc::propagate_on_container_swap ï¼å¦å为 std::false_type |
is_always_equal(C++17 èµ·)
|
è¥åå¨å为 Alloc::is_always_equal ï¼å¦å为 std::is_empty<Alloc>::type |
æåå«å模ç
| Â | |
| ç±»å | å®ä¹ |
rebind_alloc<T>
|
è¥åå¨å为 Alloc::rebind<T>::other ï¼å¦åè¥ Alloc<T, Args> å为 Alloc<U, Args> |
rebind_traits<T>
|
std::allocator_traits<rebind_alloc<T>> |
æå彿°
| [éæ] |
ç¨åé
å¨åé
æªåå§åçåå¨ (å ¬å¼éææå彿°) |
| [éæ] |
ç¨åé
å¨è§£åé
åå¨ (å ¬å¼éææå彿°) |
| [éæ] |
å¨åé
çå卿é 对象 (彿°æ¨¡æ¿) |
| [éæ] |
ææåå¨äºå·²åé
åå¨ç对象 (彿°æ¨¡æ¿) |
| [éæ] |
è¿ååé
å¨ææ¯æçæå¤§å¯¹è±¡å¤§å° (å ¬å¼éææå彿°) |
| è·å¾å¤å¶æ å容å¨å使ç¨çåé
å¨ (å ¬å¼éææå彿°) |
åé
| é»è®¤çåé
å¨ (类模æ¿) | |
| (C++11) |
为å¤çº§å®¹å¨å®ç°çå¤çº§åé
å¨ (类模æ¿) |
| (C++11) |
æä¾å
³äºæéå¼ç±»åçä¿¡æ¯ (类模æ¿) |