Namespaces
Variants

std::basic_ostream<CharT,Traits>:: operator=

From cppreference.net
protected :
basic_ostream & operator = ( const basic_ostream & rhs ) = delete ;
(1)
protected :
basic_ostream & operator = ( basic_ostream && rhs ) ;
(2) (depuis C++11)
1) L'opérateur d'affectation par copie est protégé et supprimé. Les flux de sortie ne sont pas CopyAssignable .
2) L'opérateur d'affectation par déplacement échange tous les membres de données de la classe de base, à l'exception de rdbuf() , avec rhs , comme en appelant swap ( * rhs ) . Cet opérateur d'affectation par déplacement est protégé : il est uniquement appelé par les opérateurs d'affectation par déplacement des classes de flux de sortie dérivées déplaçables std::basic_ofstream et std::basic_ostringstream , qui savent comment correctement affecter par déplacement les streambuffers associés.

Paramètres

rhs - l'objet basic_ostream à partir duquel assigner à * this

Exemple

#include <iostream>
#include <sstream>
#include <utility>
int main()
{
    std::ostringstream s;
//  std::cout = s;            // ERREUR : opérateur d'affectation par copie supprimé
//  std::cout = std::move(s); // ERREUR : opérateur d'affectation par déplacement protégé
    s = std::move(std::ostringstream() << 42); // OK, déplacement via la classe dérivée
    std::cout << s.str() << '\n';
}

Sortie :

42

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 2067 C++11 1. le type de paramètre de la surcharge (1) était basic_ostream&
2. le type de paramètre de la surcharge (2) était const basic_ostream &&
1. ajout de const
2. suppression de const