Je me demande s'il y a un avantage à obtenir une référence à un vecteur avant d'appeler BOOST_FOREACH ou si un appel de méthode qui renvoie une référence sera automatiquement utilisé? Par exemple, laquelle des deux boucles suivantes sera équivalente à la troisième boucle?BOOST_FOREACH utilisation implicite de référence?
vector<float>& my_method();
void main()
{
// LOOP 1 -------------------------------
vector<float>& temp_vector = my_method();
BOOST_FOREACH(float element, temp_vector)
cout << element << endl;
// LOOP 2 -------------------------------
vector<float> temp_vector = my_method();
BOOST_FOREACH(float element, temp_vector)
cout << element << endl;
// Which loop is this one most like? ----
BOOST_FOREACH(float element, my_method())
cout << element << endl;
}
Il y a un article formidable sur la mise en œuvre de 'BOOST_FOREACH': http://www.artima.com/cppsource/foreach.html –