Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un operador de desreferenciación utilizado para implementar el *ii de la expresión de iterador de almacenamiento = *X.*sin formato .
raw_storage_iterator<ForwardIterator, Type>& operator*( );
Valor devuelto
Una referencia al iterador sin formato de almacenamiento
Comentarios
Los requisitos para ForwardIterator son que el iterador sin formato de almacenamiento debe satisfacer sólo requiere el *ii = t de la expresión es válido y que no aparece ninguna sobre operador o operator= en solitario.Los operadores de miembro en esta implementación devuelven *this, de modoque el operator= (const Type&) puede realizar el almacén real en una expresión, como *_Ptr =_Val.
Ejemplo
// raw_storage_iterator_op_deref.cpp
// compile with: /EHsc
#include <iostream>
#include <iterator>
#include <memory>
#include <list>
using namespace std;
class Int
{
public:
Int(int i)
{
cout << "Constructing " << i << endl;
x = i;
bIsConstructed = true;
};
Int &operator=(int i)
{
if (!bIsConstructed)
cout << "Not constructed.\n";
cout << "Copying " << i << endl;
x = i;
return *this;
};
int x;
private:
bool bIsConstructed;
};
int main( void)
{
Int *pInt = ( Int* ) malloc( sizeof( Int ) );
memset( pInt, 0, sizeof( Int ) ); // Set bIsConstructed to false;
*pInt = 5;
raw_storage_iterator< Int*, Int > it( pInt );
*it = 5;
}
Requisitos
encabezado: <memoria>
espacio de nombres: std