Espacios de nombres
Variantes
Acciones

std::raw_storage_iterator

De cppreference.com
< cpp‎ | memory
 
 
Gestión de memoria dinámica
Punteros inteligentes
(C++11)
(C++11)
(C++11)
(hasta C++17)
(C++11)
(C++23)
Asignadores de memoria
Recursos de memoria
Almacenamiento no inicializado
raw_storage_iterator
(hasta C++20)
Algoritmos de memoria no inicializada
Algoritmos restringidos de memoria no inicializada
Apoyo para recolección de basura
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
Misceláneos
(C++20)
(C++11)
(C++11)
 
 
Definido en el archivo de encabezado <memory>
template< class OutputIt, class T >

class raw_storage_iterator

    : public std::iterator<std::output_iterator_tag, void, void, void, void>;
(hasta C++17)
template< class OutputIt, class T >
class raw_storage_iterator;
(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.

Contenido

[editar] Requerimientos de tipo

-
OutputIt debe satisfacer los requisitos de OutputIterator.

[editar] Funciones miembro

Crea un nuevo raw_storage_iterator.
(función miembro pública) [editar]
Construye un objeto en el búfer en la ubicación a la que se apunta.
(función miembro pública) [editar]
Dereferencia el iterador.
(función miembro pública) [editar]
Avanza el iterador.
(función miembro pública) [editar]
(desde C++17)
Proporciona acceso al iterador envuelto.
(función miembro pública) [editar]

Heredado de std::iterator

Member types

Miembro de tipo
Original:
Member type
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Definition
value_type void
difference_type void
pointer void
reference void
iterator_category std::output_iterator_tag

[editar] 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:

Esta
es
una
prueba
.

[editar] Véase también

Proporciona información sobre los tipos de asignadores.
(plantilla de clase) [editar]
Implementa un asignador multinivel para contenedores multinivel.
(plantilla de clase) [editar]
Comprueba si el tipo especificado admite construcción con uso de asignador.
(plantilla de clase) [editar]