共用方式為


allocator_traits 類別

類別範本描述補充配置器類型的物件。 配置器類型是任何類型,可描述用來管理所配置儲存空間的配置器物件。 具體來說,針對任何配置器類型 Alloc,您可以使用 allocator_traits<Alloc> 來判斷啟用配置器之容器所需的所有資訊。 如需詳細資訊,請參閱預設 allocator 類別

語法

template <class Alloc>
    class allocator_traits;

成員

Typedefs

名稱 描述
allocator_type 此類型是範本參數 Alloc 的同義字。
const_pointer 如果該類型的格式良好,則此類型為 Alloc::const_pointer;否則,此類型為 pointer_traits<pointer>::rebind<const value_type>
const_void_pointer 如果該類型的格式良好,則此類型為 Alloc::const_void_pointer;否則,此類型為 pointer_traits<pointer>::rebind<const void>
difference_type 如果該類型的格式良好,則此類型為 Alloc::difference_type;否則,此類型為 pointer_traits<pointer>::difference_type
pointer 如果該類型的格式良好,則此類型為 Alloc::pointer;否則,此類型為 value_type *
propagate_on_container_copy_assignment 如果該類型的格式良好,則此類型為 Alloc::propagate_on_container_copy_assignment;否則,此類型為 false_type
propagate_on_container_move_assignment 如果該類型的格式良好,則此類型為 Alloc::propagate_on_container_move_assignment;否則,此類型為 false_type。 如果類型為 true,則啟用配置器的容器會複製其在 move 指派上的預存配置器。
propagate_on_container_swap 如果該類型的格式良好,則此類型為 Alloc::propagate_on_container_swap;否則,此類型為 false_type。 如果類型為 true,則啟用配置器的容器會在交換時交換其預存配置器。
size_type 如果該類型的格式良好,則此類型為 Alloc::size_type;否則,此類型為 make_unsigned<difference_type>::type
value_type 這個類型是 Alloc::value_type 的同義字。
void_pointer 如果該類型的格式良好,則此類型為 Alloc::void_pointer;否則,此類型為 pointer_traits<pointer>::rebind<void>

靜態方法

下列靜態方法會在指定的配置器參數上呼叫對應方法。

名稱 描述
allocate 靜態方法,使用指定的配置器參數來配置記憶體。
construct 靜態方法,使用指定的配置器來建構物件。
deallocate 靜態方法,使用指定的配置器來解除配置指定數目的物件。
destroy 靜態方法,使用指定的配置器在物件上呼叫解構函式,而不解除配置其記憶體。
max_size 靜態方法,使用指定的配置器來決定可配置的物件數目上限。
select_on_container_copy_construction 靜態方法,可在指定的配置器上呼叫 select_on_container_copy_construction

分配

靜態方法,使用指定的配置器參數來配置記憶體。

static pointer allocate(Alloc& al, size_type count);

static pointer allocate(Alloc& al, size_type count,
    typename allocator_traits<void>::const_pointer* hint);

參數


配置器物件。

計數
要配置的元素數。

提示
const_pointer,可找出要求之前所配置物件的位址,來協助配置器物件符合儲存要求。 Null 指標視為沒有提示。

傳回值

每個方法都會傳回所配置物件的指標。

第一個靜態方法會傳回 al.allocate(count)

如果該運算式的格式良好,則第二個方法會傳回 al.allocate(count, hint);否則會傳回 al.allocate(count)

建構

靜態方法,使用指定的配置器來建構物件。

template <class Uty, class Types>
static void construct(Alloc& al, Uty* ptr, Types&&... args);

參數


配置器物件。

ptr
要建構物件之位置的指標。

args
傳遞給物件建構函式的引數清單。

備註

如果該運算式的格式良好,則靜態成員函式會呼叫 al.construct(ptr, args...);否則會評估 ::new (static_cast<void *>(ptr)) Uty(std::forward<Types>(args)...)

取消配置

靜態方法,使用指定的配置器來解除配置指定數目的物件。

static void deallocate(Alloc al,
    pointer ptr,
    size_type count);

參數


配置器物件。

ptr
要解除配置之物件的起始位置指標。

計數
要解除配置的物件數目。

備註

此方法會呼叫 al.deallocate(ptr, count)

這個方法不會擲回任何項目。

終結

靜態方法,使用指定的配置器在物件上呼叫解構函式,而不解除配置其記憶體。

template <class Uty>
    static void destroy(Alloc& al, Uty* ptr);

參數


配置器物件。

ptr
物件位置的指標。

備註

如果該運算式的格式良好,則此方法會呼叫 al.destroy(ptr);否則會評估 ptr->~Uty()

max_size

靜態方法,使用指定的配置器來決定可配置的物件數目上限。

static size_type max_size(const Alloc& al);

參數


配置器物件。

備註

如果該運算式的格式良好,則此方法會傳回 al.max_size();否則會傳回 numeric_limits<size_type>::max()

select_on_container_copy_construction

靜態方法,可在指定的配置器上呼叫 select_on_container_copy_construction

static Alloc select_on_container_copy_construction(const Alloc& al);

參數


配置器物件。

傳回值

如果該類型格式良好,這個方法會傳 al.select_on_container_copy_construction()回 ,否則會傳 回al

備註

此方法用來在建構複製相關聯的容器時指定配置器。