<div class="t-tr-text">C + +: concetti<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
Da cppreference.com.
|
|
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate. La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
<metanoindex/>
Incapsula allocazione di memoria e strategia deallocazione.
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.
Ogni componente di libreria standard che potrebbe essere necessario allocare o liberare memoria, da std::string, std::vector, e ogni contenitore, tranne std::array, a std::shared_ptr e std::function, lo fa attraverso un Allocator: un oggetto di un tipo di classe che soddisfi i seguenti requisiti.
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.
Alcuni requisiti sono opzionali: il std::allocator_traits modello fornisce le implementazioni di default per tutti i requisiti opzionali, e tutti i contenitori della libreria standard e altri allocatore-aware classi di accesso tramite l'allocatore std::allocator_traits, non direttamente.
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.
Requisiti
Dato
Original:
Given
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
A, un allocatore perTtipoOriginal:
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, l'allocatore stesso perUtipoOriginal:
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, un valore di tipoallocator_traits<A>::pointer, ottenuto chiamandoallocator_traits<A>::allocate()Original:
ptr, a value of typeallocator_traits<A>::pointer, obtained by callingallocator_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, un valore di tipoallocator_traits<A>::const_pointer, ottenuto dalla conversione daptrOriginal:
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, un valore di tipoallocator_traits<A>::void_pointer, ottenuto dalla conversione daptrOriginal:
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, un valore di tipoallocator_traits<A>::const_void_pointer, ottenuto dalla conversione dacptro davptrOriginal:
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, un puntatore a qualche dereferencableXtipoOriginal:
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 (opzionale)
|
Satisfies NullablePointer and RandomAccessIterator
|
|
A::const_pointer (opzionale)
|
A::pointer is convertible to A::const_pointer. Satisfies NullablePointer and RandomAccessIterator
|
|
A::void_pointer (opzionale)
|
A::pointer is convertible to A::void_pointer
Original:
The text has been machine-translated via Google Translate. |
|
A::const_void_pointer (opzionale)
|
A::pointer, A::const_pointer, and A::void_pointer are convertible to A::const_void_pointer
Original:
The text has been machine-translated via Google Translate. |
|
A::value_type
|
the type T
| |
A::size_type (opzionale)
|
A::size_type can represent the size of the largest object A can allocate
|
unsigned integer type |
A::difference_type (opzionale)
|
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 (opzionale [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) (opzionale)
|
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() (opzionale)
|
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) (opzionale)
|
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) (opzionale)
|
Destructs an object of type X pointed to by xptr, but does not deallocate any storage.
|
|
a.select_on_container_copy_construction() (opzionale)
|
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 (opzionale)
|
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 (opzionale)
|
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 (opzionale)
|
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 |
Note:
Original:
Notes:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
[1] rebind è opzionale (fornito da std :: allocator_traits) se questo allocatore è un modello della forma SomeAllocator <T, Args>, dove Args è zero o più parametri di template aggiuntivi.
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.