Il arrive souvent que j'ai besoin d'itérer sur une liste de chaînes dans mon code C++.Y a-t-il un moyen facile d'itérateur sur une liste statique de chaînes en C++?
Dans les langues comme Perl, cela est facile:
foreach my $x ("abc", "xyz", "123") {.... }
Dans le passé, ce que je l'ai fait en C++
const char* strs[] = { "abc", "xyz", "123" };
for (int i=0; i<sizeof(strs)/sizeof(const char*); i++) {
const char *str = strs[i];
...
Si je possède déjà un conteneur STL, je peux utiliser BOOST_FOREACH
std::vector<std::string> strs;
BOOST_FOREACH(std::string str, strs) {
...
J'ai essayé de créer une macro pour combiner tous ces concepts mais sans succès.
Je voudrais être en mesure d'écrire du code comme ceci:
SPECIAL_STRING_FOREACH(const char* str, {"abc", "xyz", "123"}) {
...
}
Sûrement quelqu'un cuit cela avant.
+1 pour un effort héroïque :) –