raw_storage_iterator::operator=
Opérateur d'assignation utilisé pour implémenter le stockage brut d'expression d'itérateur *i = x pour le stockage en mémoire.
raw_storage_iterator<ForwardIterator, Type>& operator=(
const Type& _Val
);
Paramètres
- _Val
La valeur de l'objet de type Type à insérer dans la mémoire.
Valeur de retour
L'opérateur insère _Val en mémoire, puis retourne une référence à l'itérateur brut de stockage.
Notes
Les spécifications liées à état ForwardIterator que l'itérateur brut de stockage doit satisfaire requièrent seulement que l'expression *ii = t soit valide et qu'elle ne dise rien sur l'opérateur ou le operator= par eux même. Ces opérateurs membres retournent *this.
L'opérateur d'affectation construit l'objet suivant dans la séquence de sortie à l'aide d'abord de la valeur stockée d'itérateur, en évaluant la nouvelle expression new (void (*)&*première) Type(_Val) de l'emplacement.
Exemple
// raw_storage_iterator_op_assign.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;
}
Configuration requise
En-tête: <mémoire>
Espace de noms : std