Recherche méthode paliative au bug connu GCC (Constructeur ostream non movable)
Bonjour,
Voici mon problème en quelques lignes.
Je reprend actuellement un projet dans mon entreprise qui a pour but de modifier le logiciel existant afin qu'il puisse s’exécuter sur une librairie à jour car il a été créer avec la librairie C++ STL SGI, qui n'est plus utilisée aujourd'hui.
Voici mon bout de code posant problème, les points importants sont indiqués en gras
Code:
1 2 3 4 5 6 7 8 9 10 11
| void make_xml (ostream & out, LISP_Atom * expr)
{
int top_error = error_in_IC.front ();
xmlout = out;
__lisp_disp_dblquote = 0;
if (expr == NULL)
return;
if (expr->type () != liste) {
expr->out (xmlout, 1);
return;
} |
Erreur retournée par GCC 4.6.1 c++0x.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| In file included from /usr/include/c++/4.6/iostream:40:0,
from lisp.h:11,
from lisp2xml.h:6,
from lisp2xml.cpp:1:
/usr/include/c++/4.6/ostream:57:11: erreur: 'std::basic_ostream<char>& std::basic_ostream<char>::operator=(const std::basic_ostream<char>&)' is implicitly deleted because the default definition would be ill-formed:
/usr/include/c++/4.6/ostream:57:11: erreur: use of deleted function 'std::basic_ios<char>& std::basic_ios<char>::operator=(const std::basic_ios<char>&)'
In file included from /usr/include/c++/4.6/ios:45:0,
from /usr/include/c++/4.6/ostream:40,
from /usr/include/c++/4.6/iostream:40,
from lisp.h:11,
from lisp2xml.h:6,
from lisp2xml.cpp:1:
/usr/include/c++/4.6/bits/basic_ios.h:64:11: erreur: 'std::basic_ios<char>& std::basic_ios<char>::operator=(const std::basic_ios<char>&)' is implicitly deleted because the default definition would be ill-formed:
/usr/include/c++/4.6/bits/ios_base.h:791:5: erreur: 'std::ios_base& std::ios_base::operator=(const std::ios_base&)' is private
/usr/include/c++/4.6/bits/basic_ios.h:64:11: erreur: à l'intérieur du contexte |
C'est un bug connu par les dév GCC :aie: : http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316
Malheureusement je ne vois pas de méthode palliative mise en place pour aider à corriger ce bug faisant partie intégrante de la librairie Standard.