raw_storage_iterator::operator=

Opérateur d'assignation utilisé pour implémenter le *i brut d'expression d'itérateur de mémoire = x pour stocker dans la mémoire.

raw_storage_iterator<ForwardIterator, Type>& operator=(
   const Type& _Val
);

Paramètres

  • _Val
    La valeur de l'objet du 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 mémoire.

Notes

Les spécifications pour ForwardIterator déclarent que l'itérateur brut de la mémoire doit satisfaire requièrent que le *ii d'expression = le t soit valide, et qu'elle n'indique aucun effet sur l' operator ou d' operator= sur leur.Ces opérateurs membres *thisde retour.

L'opérateur d'assignation construit l'objet dans la séquence de sortie à la valeur stockée itérateur d'abord, en évaluant la nouvelle expression new (void (*) &*first) Type(_Val) de positionnement.

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 : <memory>

l'espace de noms : DST

Voir aussi

Référence

raw_storage_iterator Class