expression lambda evaluee qu'une seule fois
Hello !
Je ne comprends pas pourquoi dans le code ci-dessous, l'expression lambda n'est evaluee qu'une seule fois :
Code:
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:
1 2 3
|
vector<int> v(2);
for_each(v.begin(), v.end(), _1 = _1+1); |
Si qqun avait une explication .....