std::raw_storage_iterator - cppreference.com
De cppreference.com
</tbody> <tbody class="t-dcl-rev "> </tbody><tbody>
| Definido en el archivo de encabezado |
||
|
|
(hasta C++17) | |
|
|
(desde C++17) (en desuso) (eliminado en C++20) |
|
El iterador de salida std::raw_storage_iterator hace posible que los algoritmos estándar almacenen los resultados en la memoria no inicializada. Cada vez que el algoritmo escribe un objeto de tipo T en el iterador desreferenciado, el objeto se copia en la ubicación del almacenamiento no inicializado al que apunta el iterador. El parámetro de plantilla OutputIt es cualquier tipo que cumpla con los requisitos de OutputIterator y tiene operator* definido para devolver un objeto, para el cual {{c|operator&} } devuelve un objeto de tipo T*. Por lo general, el tipo T* se usa como OutputIt.
Requerimientos de tipo
Funciones miembro
Heredado de std::iterator
Member types
Miembro de tipo Original: Member type The text has been machine-translated via Google Translate. |
Definition |
value_type
|
void
|
difference_type
|
void
|
pointer
|
void
|
reference
|
void
|
iterator_category
|
std::output_iterator_tag
|
Ejemplo
#include <iostream> #include <string> #include <memory> #include <algorithm> int main() { const std::string s[] = {"Esta", "es", "una", "prueba", "."}; std::string* p = std::allocator<std::string>().allocate(5); std::copy(std::begin(s), std::end(s), std::raw_storage_iterator<std::string*, std::string>(p)); for(std::string* i = p; i!=p+5; ++i) { std::cout << *i << '\n'; i->~basic_string<char>(); } std::allocator<std::string>().deallocate(p, 5); }
Salida: