URL: https://linuxfr.org/users/obsidian/journaux/probl%C3%A8mes-de-compilation-g-suite Title: Problèmes de compilation g++ (suite) Authors: Obsidian Date: 2004年03月08日T18:14:32+01:00 Tags: Score: 2 Bonsoir à tous les journautes ... Voila, pour ceux qui avaient eu la bonté de suivre le précédent journal ( [http://linuxfr.org/~Obsidian/9726.html(...)](http://linuxfr.org/~Obsidian/9726.html) ), ou j'exposais mes problèmes d'utilisation des opérateurs ... D'abord, gcc doc roulaize, si certains les cherchent. [http://gcc.gnu.org/onlinedocs/(...)](http://gcc.gnu.org/onlinedocs/) [http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/Option-Index.html#Optio(...)](http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/Option-Index.html#Option%20Index) et aussi: " [http://es-sun2.fernuni-hagen.de/cgi-bin/info2html?(gcc(...)](http://es-sun2.fernuni-hagen.de/cgi-bin/info2html?(gcc))Option%20Index " Et surtout, j'ai identifié le problème mais ne sait pas comment le résoudre. class A { public: A & operator << (unsigned long int); operator bool (); } int main (void) { A << 4; return 0; } Petite explication: - Je dérive l'opérateur « << » pour m'en servir à des fins de décalage. - Je dérive l'opérateur _bool_ car mon objet peut avoir un statut défini ou indéfini qui doit transparaitre lorsqu'il est impliqué dans une condition. Et c'est çà qui provoque l'ambigüité. g++ considère non seulement que dans mon _main_, le « << » est en fait la fonction membre _.operator<<(ulong)_ (normal), mais également qu'il pourrait caster ma classe en booléen, donc en entier, et donc utiliser l'opérateur normal. Cela me pose problème parce que cela limite énormément les le champs d'action efficace de la surcharge des opérateurs. Que le compilo se plaigne lorsqu'il y a des ambigüités à un même niveau (deux méthodes d'une même classe, par exemple), je le conçois, mais là, le cheminement à faire est bien trop long pour que cela soit vraiment ambigü, et mon cas de figure est légitime ... Voila, si quelqu'un trouve l'option magique ...

AltStyle によって変換されたページ (->オリジナル) /