boost n’est pas toujours ce qu’il y a de plus facile à prendre en main, surtout pour un débutant en C++.
Tu peux regarder du côté du framework Qt qui fournit des méthodes de sérialisation (entre...
boost n’est pas toujours ce qu’il y a de plus facile à prendre en main, surtout pour un débutant en C++.
Tu peux regarder du côté du framework Qt qui fournit des méthodes de sérialisation (entre...
argv[0] ne contient pas forcément le dossier de l’exécutable, mais plutôt le nom sous lequel le programme a été invoqué (ce peut-être un lien symbolique, par exemple, ou quelque chose de la forme...
Vu ce que tu veux faire, personnellement, je partirai sur du polymorphisme statique (à base de templates, donc). Tu peux t’en sortir avec du polymorphisme dynamique, comme l’a suggéré Bousk, mais...
C’est même surtout ce qu’il faut faire. De manière générale, un set ne doit être utilisé que si tu ne maîtrises pas le moment où seront faites tes insertions, et que tu dois garantir que la...
Si tu utilises des doubles pour représenter tes entiers, tu auras le même problème de chiffres significatifs. L’idée est d’utiliser de vrais entiers.
Fraction::operator int() { return m_numerateur / m_denominateur; }
Fraction::operator double() { return ((double)m_numerateur / m_denominateur); }
Pour la conversion en int, ça revient à...
Tu as conscience que tes deux surcharges sont strictement identiques ?
Si tu as besoin de différencier bouclier / épée, peut-être qu’il serait intéressant de les typer plus fortement que...
Merci de ne pas appeler ça une callback. C’est une start_routine.
Sinon, comme il n’y a pas de synchronisme entre la création du thread enfant et l’exécution du thread parent, sauf au point de...
Non, la boucle continue tant que l’expression évalue à vrai.
Évalue à vrai, cela signifie dans le cas où on a entré la chaîne "toto" :
choixDebut == "Enregistrer" --> FAUX
choixDebut ==...
Question de logique.
Ce que tu as écrit, c’est :
faire la boucle tant que :
choixDebut ne vaut pas "Enregistrer" ou
choixDebut ne vaut pas "Quitter" ou
choixDebut ne vaut pas...
Si je comprends bien, tu réécris du code C++ en C ?
Ça m’a l’air correct, sauf que tu ne testes pas le retour de malloc (oui, personne ne le fait, c’est d’ailleurs pour ça qu’il ne faut pas faire...
Oui, mais à condition que tu donnes un peu plus d’information :
- le code qui pose problème (notamment, la ligne qui cause le message d’erreur)
- la hiérarchie des fichiers de ton projets
Sans...
En fait, il y a une petite erreur : il ne faut pas une map, mais une liste ordonnée (l’ordre des substitutions est important).
Je prends un exemple :
chaîne de départ : abcdefghijklmnopqrstuvwxyz...
Non, pas de mise à jour des décalages car la « mise à jour » se fait lors de l’application, car tu appliques successivement tous les décalages.
Je n’ai pas le temps tout de suite, je déroulerai un...
Quand tu fais une substitution à la position n, tu crées un décalage.
Ce décalage s’applique à tous les éléments à la position pos = n + longueur(chaîne à remplacer), et il vaut offset =...
if (*it != nullptr) {
delete *it;
cout << "Children with value " << (*it)->getValue() << " is deleted" << endl;
}
Après delete *it, tu ne peux plus utiliser it !
Sinon, pourquoi ne...
Pour revenir au problème de l’op, il y a confusion entre deux choses :
- fin du thread (pthread_join attend pour la fin du thread)
- fin du traitement de recherche du thread (solution disponible)
...
En effet, mais le template n’empêche pas forcément la configuration au run-time. La technique que j’ai décrite, consistant à hériter publiquement de la classe de traits/politique, permet à celle-ci...
Un choix. Comme tout choix, il a une part d’arbitraire :).
Il y a plusieurs raisons à ça :
- sortir le data_handler permet d’exporter le parseur CSV paramétré pour std::string dans une...
Bonjour,
J’ai mis à jour l’article avec le fichier manquant (sinon, il est ici). J’en ai profité pour changer la licence. Du coup, il y a des exemples d’utilisation.
Pour « call_field_handler...
Sur ce point, il a parfaitement raison. Les postconditions sont avant tout utiles pour l’analyse statique et pour la doc.
Néanmoins, compte tenu des limitations des TUs (on ne teste jamais pour...
Ça ne l’est pas (imposé). C’est pour ça qu’une rupture de contrat doit rester un UB.
Cela dit, la contrainte de stabilité impose que tu aies une vraie politique de gestion de tes propres bugs. Un...
Ben, justement, oui… Une bonne formation en C++ est une formation qui, entre autres, ne commence pas par aborder la case C.
Franchement, j’ai vu trop de code pourri dans des langages «...
J’ai l’impression que John Lakos est passé à côté de l’intérêt principal des postconditions. Dans sa présentation (que je recommande chaudement à tout le monde par ailleurs, en complément des billets...
À tout hasard, si tu as plusieurs fichiers qui ont le même nom (mais dans des répertoires différents), vérifier que les « include guards » (#ifdef truc) ne soient pas basé sur la même valeur. Ça peut...