(Mon message est passé à la trappe ! Mauvaise manip' sans doute).
Donc, en vrac :
- Tes
namespaces ne servent vraiment à rien si tes fonctions ne dépassent pas les frontières de ton application (mais bon, ils ne sont pas nocifs non plus).
- L'un des avantages du C++ est de pouvoir continuer à écrire des fonctions quand ça se justifie plutôt que d'avoir à systématiquement instancier un objet pour le principe. Ok. Cela dit, si tu débutes et que comptes faire une bibliothèque, tu devrais dès le départ concevoir ton projet avec des classes. Enfin, ce n'est que mon avis.
- Il y a des choses que tu peux factoriser dans ton code :
Par exemple :
1 2 3 4 5 6 7 8 9 10 11 12
| for(int i = 2 ; i < nombre ; ++i)
{
if(i == 2)
{
chaine.push_back(*tableau[i]);
}
else
{
chaine.push_back(fixe);
chaine.push_back(*tableau[i]);
}
} |
se simplifie en :
1 2 3 4 5 6
| for(int i = 2 ; i < nombre ; ++i)
{
if(i > 2) chaine.push_back(fixe);
chaine.push_back(*tableau[i]);
} |
Enfin, dans cette même fonction, tu définis directement dans le code une boucle commençant à 2 pour traiter argc et argv. Très bien, mais ce n'est pas l'objet en soi de ta fonction, et la liste de mots à concaténer pourrait venir d'une autre source.
À la place, fais plutôt une boucle qui concatène tous les mots et appelle-là, toi, avec un argument de moins :
std::string code = KolorEngine::implode(' ', argv+1, argc-1);
Partager