Bonjour,
Je n'arrive toujours pas à trouver l'intérêt d'utiliser l'opérateur && introduit en C++11. Pour vous montrer un exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <iostream> using namespace std; class Toto { public: void meth(const int& a){ cout<<"Je suis meth(const int& a)"<<endl; cout<<a<<endl; } void meth(int&& a){ cout<<"Je suis meth(int&& a)"<<endl; cout<<a<<endl; } }; int main() { Toto* t = new Toto(); t->meth(123); // Va afficher Je suis meth(int&& a) delete t; return 0; } |
La méthode possédant la signature "meth(int&& a)" est prioritaire sur "meth(const int& a)", cependant si on la supprime, c'est l'autre qui prend la main.
- Vous ne pensez pas que c'est "dangereux" dans le sens où on peut exécuter une implémentation ayant la signature que l'on pense être bon mais sans même comprendre pendant des heures pourquoi on n'a pas le bon résultat parce qu'en faite c'était l'autre méthode qu'on aurait voulu lancer ?
- Quel est le réel intérêt/enjeu de cet opérateur && ? Je veux dire, le plus que cela apporte, la "chose" qu'on ne pouvait pas faire avant et que c'est désormais possible aujourd'hui.
- Quels sont les cas où il faut privilégier l'un et pas l'autre ?
Merci
+0
-0