Problème de copie avec fstream
Bonjour,
J'ai une structure définie comme ceci :
Code:
1 2 3 4 5
| struct X
{
std::ofstream file;
// ...
}; |
et une classe Y qui stocke des X :
Code:
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 :
Citation:
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:
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).