Range based for ou comment j’ai pleuré du sang à cause de C++ 0x

Le code qui suit ne fonctionne pas (pour l’instant) avec gcc/g++, mais il fonctionne (il parait) en Visual C++:

1
2
3
4
5
6
7
8
#include <iostream>
 
int tab[5] = {1, 2, 3, 4, 5};
for (int &x : tab) 
{
  x *= 2;
  std::cout << "x: " << x << std::endl;
}

Je pense que ça va me prendre du temps pour m’habituer à cette écriture de boucle for.