Bonsoir
J'aimerai savoir pourquoi l'operateur == n'est pas déduit automatiquement par le compilateur (comme par exemple l'operateur d'affectation, le constructeur par recopie), même dans un cas trivial ?
Si je n'implemente pas l'operator==, je ne peux pas supprimer un element d'une liste de Foo :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Avec l'operator == implementé, pas de problèmes. Sans, j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
Ce qui me parait surprenant, c'est qu'il faille implémenter cet opérateur dans le cas trivial de variables membres ayant toutes l'operator== de défini.
Code : Sélectionner tout - Visualiser dans une fenêtre à part error: no match for 'operator==' in '__first.std::_List_iterator<_Tp>::operator* [with _Tp = Foo]() == __value'
Avez vous une explication, ou bien c'est juste pour forcer le developpeur à expliciter cet operateur (dans ce cas, pourquoi ne pas faire la même chose pour l'operateur= et le constructeur par recopie ?).
--
Jérémie

 

 
		
		 
         
 

 
			
			


 
   
 


 l'operator == doit être implementé ?
 l'operator == doit être implementé ?
				 Répondre avec citation
  Répondre avec citation
Partager