#include <memory>
#include <istream>
typedef std::unique_ptr<std::istream> myType;
class myClass{
myType myStream;
public:
myClass(myType a_stream){
myStream = std::move(a_stream); //compiler error
}
};
Pourquoi je ne suis pas autorisé à déplacer un flux nouvellement créé? Pour autant que je sache, les flux ne sont pas copiables, mais sont mobiles. Est-ce que je manque quelque chose? Pointeur unique s'adapte particulièrement bien pour les objets non-copiables, au moins théoriquement.Pointeur unique vers le flux
erreur du compilateur
no match for 'operator='
Quel est votre compilateur? Avez-vous '# include'd tous les fichiers d'en-tête nécessaires? –
GCC 4.8.x et oui bien sûr istream et la mémoire sont inclus. Je modifie le message – GameDeveloper
Eh bien, [je ne peux pas reproduire cela] (http://ideone.com/QX4PKk) ... –