Hello !

Je ne comprends pas pourquoi dans le code ci-dessous, l'expression lambda n'est evaluee qu'une seule fois :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
  vector<int*> v(2);
  v[0] = 0;
  v[1] = 0;
 
  for_each(v.begin(), v.end(), _1 = new int);
Si par contre, je travaille avec des int au lieu de int*, l'expression suivante est bien evaluee pour chaque element du vecteur (2 fois ici donc) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
  vector<int> v(2);
  for_each(v.begin(), v.end(), _1 = _1+1);
Si qqun avait une explication .....