Overflow-safe integer mul&div
Posté par Olivier dans Trucs & Astuces le 22 décembre 2023
When you do a multiply & divide operation, to ensure you don’t loose precision, you would start by the multiplication before the division. But in that case, it could be that the result of the multiplication overflows. The natural solution would go to use an intermediate storage of larger size. This uses concepts (C++20). For […]
Crèpes à la façon du Mont
Lors d’un séjour au Mont-Saint-Michel, le patron du B&B où nous séjournions, nous préparait chaque matin des crèpes légères et gouteuses. Il a eu la gentillesse de nous livrer sa recette. Ingrédients Pour 6 personnes 40g de beurre fondu 250g de farine 40g de sucre 60cl de lait 4 oeufs 1 cuillère à soupe de […]
Le Cancre Las
En 1988, les élèves à l’Athenée Maurice Carême de Wavre se sont lancés dans un projet fou: créer un journal. La fine petite équipe a eu le soutien de l’école et de ses professeurs ainsi que de commerces locaux (p.ex. le disquaire La Lyre d’Or). Résultat: 4 numéros (que je viens de retrouver en triant […]
Clamping values with style
Posté par Olivier dans Trucs & Astuces le 12 mai 2021
The following question was raised in one of our software devs channel at work: On style and readability and intent : std::min or std::clamp or explicit if/reassign. Option 1: int x = someValue;if (x > max) { x = max;} Option 2: int x = std::min(someValue, max); Option 3: int x = std::clamp(someValue, 0, max); […]
Proper handling of temporary objects
Posté par Olivier dans Trucs & Astuces le 10 mars 2021
Purpose Making a wrapper that keeps reference to some constructor arguments.That’s OK as long as the wrapper lifetime is longer or equal to its construction arguments. If the wrapper is created from temporary objects, it should better be used in the same line _or_ it will make reference to possibly destroyed objects. Example Available on […]
Cookie de l’école de Perbais
Ingrédients 250gr de farine fermentante (ou farine à patisserie + 1 cc de bicarbonate de soude + levure) 100gr de flocons d’avoine 100gr de pépites de chocolat 100gr de sucre blanc 100gr de cassonade 125gr de beurre (ramoli) 1 oeuf (battu) Préparation Mélanger tous les ingrédients dans un saladier. Disposer des petites boules de pâtes […]
Vol au vent minute
Ingrédients 400gr de filets de poulet 200gr de haché 300gr de champignons 100ml de lait 50ml de crème fraîche 3 c.a.s de farine fermentante 1 citron épices pour poulet Préparation confectionner de petites boulettes avec le haché découper les filets de poulet en petits dés les déposer dans le plat pour micro-ondes ajouter les épices […]
The Hidden Dangers of std::function and lambdas
Posté par Olivier dans Trucs & Astuces le 30 septembre 2019
Once upon a time, there was an active object which had callbacks using std::function.On the same day, a user of this object registered a callback function which, in its core, cancelled the registration. That callback was a lambda that aside of that took some reference in the current context.And guess what happened ? Here is […]
Making patch files
Posté par Olivier dans Trucs & Astuces le 7 mai 2019
Assume you have a library X, version 1.2.3, extracted in libX-1.2.3/ and that you have to integrate some fix in the build process. You would create a patch file that is applied before building that library. But how do you make the patch files depend on how you apply them. To start, you save the […]
Noix de Saint-Jacques au cidre
Ingrédients 500g de coquilles Saint-Jacques, nettoyées et prêtes à cuire 50g de beurre 2 échalotes hachées menu 40g de farine 150ml de cidre brut 50ml de lait 100g de champignons émincés sel et poivre moulu 250ml de crème fraîche épaisse persil haché pour la garniture Recette Dans le plat Ultra+, mettre le beurre et les échalotes. […]