<div class="t-tr-text">C + +の概念:<div class="t-tr-dropdown"><div><div><div class="t-tr-dropdown-arrow-border"></div><div class="t-tr-dropdown-arrow"></div><div class="t-tr-dropdown-h">Original:</div><div class="t-tr-dropdown-orig">C++ concepts:</div><div class="t-tr-dropdown-notes">The text has been machine-translated via [http://translate.google.com Google Translate].<br/> You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.</div></div></div></div></div> Allocator
提供:cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
メモリの割り当てと解放の戦略をカプセル化します.
Original:
Encapsulates memory allocation and deallocation strategy.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
へ
std::string除くstd::vectorから、std::array、すべてのコンテナ、ストレージを割り当てまたは解放する必要があるかもしれませんすべての標準ライブラリコンポーネントstd::shared_ptrとstd::function、Allocatorを通してそうします:以下の要件を満たすクラス型のオブジェクト.Original:
Every standard library component that may need to allocate or release storage, from
std::string, std::vector, and every container except std::array, to std::shared_ptr and std::function, does so through an Allocator: an object of a class type that satisfies the following requirements.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
いくつかの要件はオプションです。テンプレートstd::allocator_traitsは直接ではなく、すべてのオプションの要件については、デフォルトの実装、およびすべての標準ライブラリコンテナと他のアロケータ対応のクラス
std::allocator_traitsを通じてアロケータへのアクセスを提供します.Original:
Some requirements are optional: the template std::allocator_traits supplies the default implementations for all optional requirements, and all standard library containers and other allocator-aware classes access the allocator through
std::allocator_traits, not directly.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集] 要件
与えられた
Original:
Given
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
-
A、型T用のアロケータOriginal:A, an Allocator for typeTThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. -
B、型Uに同じアロケータOriginal:B, the same Allocator for typeUThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. -
ptr、allocator_traits<A>::pointerを呼び出すことによって取得型allocator_traits<A>::allocate()の値Original:ptr, a value of typeallocator_traits<A>::pointer, obtained by calling allocator_traits<A>::allocate()The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. -
cptr、allocator_traits<A>::const_pointerからの変換によって得られるタイプptrの値Original:cptr, a value of typeallocator_traits<A>::const_pointer, obtained by conversion fromptrThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. -
vptr、allocator_traits<A>::void_pointerからの変換によって得られるタイプptrの値Original:vptr, a value of typeallocator_traits<A>::void_pointer, obtained by conversion fromptrThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. -
cvptr、allocator_traits<A>::const_void_pointerからまたはcptrからの変換によって得られるタイプvptrの値Original:cvptr, a value of typeallocator_traits<A>::const_void_pointer, obtained by conversion fromcptror fromvptrThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. -
xptr、いくつかの型XdereferencableへのポインタOriginal:xptr, a dereferencable pointer to some typeXThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
| Expression | Requirements | Return type |
|---|---|---|
| A::pointer (オプション) | Satisfies NullablePointer and RandomAccessIterator
|
|
| A::const_pointer (オプション) | A::pointer is convertible to A::const_pointer. Satisfies NullablePointer and RandomAccessIterator
|
|
| A::void_pointer (オプション) | A::pointer is convertible to A::void_pointer
B::void_pointerA::void_pointerと同じ型です。満たすNullablePointerOriginal: The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
|
| A::const_void_pointer (オプション) | A::pointer, A::const_pointer, and A::void_pointer are convertible to A::const_void_pointer
B::const_void_pointerA::const_void_pointerと同じ型です。満たすNullablePointerOriginal: The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
|
| A::value_type | the type T
| |
| A::size_type (オプション) | A::size_type can represent the size of the largest object A can allocate
|
unsigned integer type |
| A::difference_type (オプション) | A::difference_type can represent the difference of any two pointers to the objects allocated by A
|
signed integer type |
| A::template rebind<U>::other ([1]はオプション) | for any U, B::template rebind<T>::other is A
|
the type B
|
| *ptr | T&
| |
| *cptr | *cptr and *ptr identify the same object | const T&
|
| ptr->m | same as (*ptr).m, if (*ptr).m is well-defined | the type of T::m
|
| cptr->m | same as (*cptr).m, if (*cptr).m is well-defined | the type of T::m
|
| static_cast<A::pointer>(vptr) | static_cast<A::pointer>(vptr) == ptr | A::pointer
|
| static_cast<A::const_pointer>(cvptr) | static_cast<A::const_pointer>(vptr) == cptr | A::const_pointer
|
| a.allocate(n) | allocates storage suitable for n objects of type T, but does not construct them. May throw exceptions.
|
A::pointer
|
| a.allocate(n, cptr) (オプション) | same as a.allocate(n), but may use cptr in unspecified manner to aid locality
|
A::pointer
|
| a.deallocate(ptr, n) | deallocates storage previously allocated by a call to a.allocate(n). Does not call destructors, if any objects were constructed, they must be destroyed before calling a.deallocate(). Does not throw exceptions. | (not used) |
| a.max_size() (オプション) | the largest value that can be passed to A::allocate()
|
A::size_type
|
| a1 == a2 | returns true only if the storage allocated by the allocator a1 can be deallocated through a2. Establishes reflexive, symmetric, and transitive relationship. Does not throw exceptions.
|
bool |
| a1 != a2 | same as !(a1==a2) | bool |
| A a1(a) | Copy-constructs a1 such that a1 == a. Does not throw exceptions.
|
|
| A a(b) | Constructs a such that B(a)==b and A(b)==a. Does not throw exceptions.
|
|
| A a1(std::move(a)) | Constructs a1 such that it equals the prior value of a. Does not throw exceptions.
|
|
| A a(std::move(b)) | Constructs a such that it equals the prior value of A(b). Does not throw exceptions.
|
|
| a.construct(xptr, args) (オプション) | Constructs an object of type X in previously-allocated storage at the address pointed to by xptr, using args as the constructor arguments
|
|
| a.destroy(xptr) (オプション) | Destructs an object of type X pointed to by xptr, but does not deallocate any storage.
|
|
| a.select_on_container_copy_construction() (オプション) | Provides an instance of A to be used by the container that is copy-constructed from the one that uses a currently. Usually returns either a copy of a or a default-constructed A().
|
A
|
| a.propagate_on_container_copy_assignment (オプション) | true if the allocator of type A needs to be copied when the container that uses it is copy-assigned
|
std::true_type or std::false_type or derived from such |
| a.propagate_on_container_move_assignment (オプション) | true if the allocator of type A needs to be copied when the container that uses it is move-assigned
|
std::true_type or std::false_type or derived from such |
| a.propagate_on_container_swap (オプション) | true if the allocators of type A need to be swapped when two containers that use them are swapped
|
std::true_type or std::false_type or derived from such |
注:
Original:
Notes:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
このアロケータはフォームSomeAllocatorのテンプレートの場合、[1] REBINDのみ省略可能です(標準で提供される:: allocator_traits)<T, Argsは、ゼロ以上の追加のテンプレートパラメータであるArgs>、.
Original:
[1] rebind is only optional (provided by std::allocator_traits) if this allocator is a template of the form SomeAllocator<T, Args>, where Args is zero or more additional template parameters.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.