Bonjour,

J'ai une structure définie comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
struct X
{
    std::ofstream file;
    // ...
};
et une classe Y qui stocke des X :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
class Y
{
    private:
        std::unordered_map<std::string, X> data;
};
Mon soucis, c'est que lorsque je veux créer un nouveau X et le ranger dans data, le compilateur m'en empêche :

error: use of deleted function 'X& X::operator=(const X&)'
note: 'X& X::operator=(const X&)' is implicitly deleted because the default definition would be ill-formed:
error: use of deleted function 'std::basic_ofstream<char>& std::basic_ofstream<char>::operator=(const std::basic_ofstream<char>&)'
Comment puis-je m'en sortir ? J'aimerais pouvoir faire ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Y y;
y.add_X ("ID", X(/* ... */));
Comment puis-je le créer sans copie ? (j'utilise un mingw64 avec gcc 4.7).