Journal CPPP

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
22
13
juin
2019

Demat' iNal,

Ce samedi 15 juin aura lieu à Paris la conférence CPPP. Cette conférence s'adresse à tous ceux qui malgré ce dernier journal ont conservé une tendre affection (ou un syndrome de Stockholm) pour le langage C++.

On notera la présence de plusieurs orateurs anglophones ayant fait des présentations à succès à CppCon:

(…)

Journal 'Markdown presentation processor' (ou de l'intérêt des fichiers texte).

Posté par  (site web personnel) . Licence CC By‑SA.
22
25
fév.
2018

Cherchant à réaliser une présentation vidéo, et utilisant déjà par ailleurs Writer de Libre Office, je me suis naturellement tourné vers Impress pour cela. C'est peut-être un très bon logiciel dans le genre, mais, personnellement, le fait de devoir m'occuper, en même temps, et du contenu, et de sa mise en forme, le peu de motivation que je pouvais avoir disparaissait comme neige au soleil. C'est la première fois que je rédigeais une telle présentation, et c'est le genre (…)

Journal Alignement chaotic neutre

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
21
10
juil.
2021

Demat' iNal,

J'ai récemment eu l'ineffable [1] plaisir de corriger un bug dans LLVM qui m'a causé quelques mauvaises soirées. Afin que l'histoire devienne légende et que la légende fasse mythe, je me décide à vous en raconter quelques détails amusants.

Considérons le bout de code suivant :

#include <string>
#include <boost/align/aligned_allocator.hpp> 

constexpr std::size_t align = 32;
template<class T>
using aligned_allocator = boost::alignment::aligned_allocator<T, align>;

using aligned_string = std::basic_string<char, std::char_traits<char>, aligned_allocator<char>>;

aligned_string make_string(int num) {
    return aligned_string(num, '\0');

}

#include <iostream>
(…)

Journal Une 20-aine de lignes de code pour le defer de Go en C++

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
21
7
fév.
2022

Bonjour Nal,

Si tu es comme moi, tu détestes Go malgré quelques fonctionnalités géniales et un écosystème vaste et grandissant, qui en font un choix à considérer malgré tes préférences personnelles.

Si tu es comme moi, tu préfères certainement le C++ surtout depuis le C++11. Tu fais d'ailleurs surement du C++20 histoire d'être moderne.

Parmi les fonctionnalités de Go que tu apprécies, il y a le mot clé defer :

func example() error {
  rsrc1, err := CreateResource
(…)

Journal BinMake : pour construire un fichier binaire décrit en texte

Posté par  . Licence CC By‑SA.
Étiquettes :
21
12
jan.
2017

BinMake est un logiciel libre permettant de créer des fichiers binaires en décrivant par du texte leur contenu.
Il peut également être inclus dans du code C++ et être utilisé comme un flux.

Le texte décrivant le binaire à générer permet d'indiquer des nombres de bases décimale, hexadécimale, octale et binaire, de fournir du texte brute (sur une ligne). Il permet également de modifier l'endianness.
(Il devrait prochainement proposer des nombres flottants et du texte multi-lignes)

Version programme exécutable

La (…)

Journal Des nouvelles de boost

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
21
23
fév.
2021

Bonjour Nal,

Je ne fais plus de C++ depuis longtemps, mais je regarde parfois l'actualité de ce langage.

Sa meilleure bibliothèque est sortie en version 1.75 depuis et propose des nouveautés intéressantes:

Tout d'abord un parseur JSON vraiment simple:

auto george = boost::json::parse( R"( { message: "Monde de merde" } )" );
std::cout << george["message"] << std::endl;

Ensuite un gestionnaire d'erreur qui ressemble un peu à ce que fait Go avec des valeurs de retours multiples.

D'autres libs plus (…)

Journal Vous avez dit "caractère" ?

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
21
4
sept.
2022

Ces derniers jours, j'ai cherché à mieux comprendre comment gérer UTF-8 dans une de mes applications hobby et j'ai appris pas mal de choses :)

D'abord, j'avais oublié que ASCII était codé sur 7 bits et non pas 8 bits. C'est grâce à ça que UTF-8 est automatiquement compatible avec ASCII (UTF-8 est codé avec des blocs de 8-bits, il leur a suffit de dire que le premier bit est 0 pour les 127 premiers Unicodes encodé en UTF-8).

Les (…)

Journal OSv : l'OS pour les nuages

Posté par  (site web personnel) . Licence CC By‑SA.
21
18
nov.
2013

"Hi, today we've made the first release of OSv, a new operating system for running applications on virtual machines."

Un nouvel OS vient de sortir dédié au cloud. En bon français, on pense que cela ne marchera jamais rien qu'à cause des drivers pléthoriques à écrire (en C++). Mais eux visent uniquement les environnements virtuels. Cela limite donc le développement à 1 ou 2 plateformes (kvm, xen). 2 des codeurs sont des codeurs de KVM.

L'OS est dédié à ne (…)

vcpkg, un gestionnaire de bibliothèque pour C++

Posté par  (Mastodon) . Édité par Davy Defaud, Nÿco et Benoît Sibaud. Modéré par bubar🦥. Licence CC By‑SA.
Étiquettes :
20
25
avr.
2018
C et C++

Depuis 2016, Microsoft développe vcpkg, un outil bien sympathique qui permet de télécharger et compiler un ensemble de bibliothèques et leurs dépendances. Jusqu’à présent, cet outil était disponible uniquement pour la plate‐forme Windows. Depuis le 24 avril 2018, cet outil prend également en charge les plates‐formes GNU/Linux et macOS. vcpkg est publié sous licence MIT.

Une limite cependant est que la compilation des bibliothèques sur GNU/Linux est uniquement statique. La raison invoquée est qu’il est plus compliqué d’utiliser des bibliothèques sur GNU/Linux (LD_LIBRARY_PATH, rpath, etc.) que sous Windows, où l’on peut tout mettre dans un seul répertoire.

Quoi qu’il en soit, c’est une bonne nouvelle. Même si les paquets des distributions resteront une source privilégiée pour obtenir les fichiers de développement d’une bibliothèque, vcpkg offre une alternative intéressante pour ceux qui voudraient tout construire en statique de manière à fournir un seul binaire pour toutes les variantes de GNU/Linux.

Concours de programmation CodinGame le 25 Janvier 2013

Posté par  (site web personnel) . Modéré par Pierre Jarillon. Licence CC By‑SA.
20
22
jan.
2014
Jeu

CodinGame Mission to Mars

La prochaine édition de CodinGame, le challenge de code en ligne, aura lieu le samedi 25 janvier 2013 à 18h.

L'événement accueillera des développeurs du monde entier pour leur permettre de passer un bon moment, défier leurs pairs, gagner des prix ou entrer en contact avec des sociétés qui leur plaisent et qui recrutent.

Parmi les nouveautés sur la plate-forme :

  • Python 3 sera enfin disponible !
  • Le thème de cette édition est "Mission to Mars", avec un nouveau type d'exercice qui sort des sentiers battus

Journal C++ vin va vous faire tourner en barrique !

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
19
17
sept.
2020

Ah Nal,

Je viens de découvrir avec grand plaisir que C++, mon premier amour de langage, va enfin entrer dans le vingtième siècle en adoptant un système de modules similaire à ce que l'on trouve dans les autres langages.

Ces modules seront introduit dans C++20:

Exemple d'un module dans un fichier duck.cpp:

export module duck;
import <iostream>;

export void quack() {
    std::cout << "Coin coin !" << std::endl;
}

Son utilisation:

import duck;

int main() {
    quack();
}

Il (…)

Journal GCC++ (gcc in cxx)

Posté par  (site web personnel) .
Étiquettes :
19
17
août
2012

Salut vendredi !
Quelle belle journée, c'est la canicule, beaucoup sont ceux se préparant à aller siroter des perroquets dans leurs piscines. Et certains pourraient croire à une insolation en lisant que la branche de GCC en C++ vient d'être fusionnée dans la branche principale.

Bbon ok, c'est un peu exagéré, mais en même temps mieux laisser s'exprimer les "connoisseurs".

Voilou, c'est tout.
Hop.

http://gcc.gnu.org/wiki/cxx-conversion

QGestpass logiciel de gestion de mots de passe et de sites web

18
30
mai
2022
C et C++

Ce logiciel de gestion de mots de passe a été développé au départ pour une utilisation personnelle et aussi dans un but didactique pour mieux appréhender les fonctions de cryptographie.
Compte tenu du nombre de mots de passe à gérer sur les différents sites Internet et pour avoir un mot de passe par site il était nécessaire d’utiliser un gestionnaire de mots de passe tout ayant accès aux mots de passe sur différents ordinateurs et navigateurs. Toutefois la solution de stockage des mots de passe sur le cloud et les logiciels commerciaux ne nous (NdM: l'équipe de QGestpass) convenant pas, il a été décidé de développer une solution spécifique dédiée à la création et la gestion d’identifiants et de mots de passe pour les sites web.
Ce n’est pas une application destinée à protéger des données sensibles, mais uniquement à gérer la connexion à des sites Internet.

Journal 50 mauvais conseils de codage pour développeur C++

Posté par  . Licence CC By‑SA.
Étiquettes :
18
21
fév.
2023

Bonjour,
Ce journal est pour s'amuser un peu.

Cet article a été initialement publié sur le site PVS-Studio. J'ai traduit et publié cet article ici avec l'autorisation du détenteur des droits d'auteur parce que je voulais partager cet article drôle avec la communauté française.

J'espère que vous apprécierez ce journal !

Presque tous les articles du C++ fournissent des informations sérieuses et exigent une lecture réfléchie — de préférence avec une tasse de café. Et parfois, on veut juste (…)

Journal C++, surcharge d'opérateur, ordre d'évaluation

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
17
21
fév.
2020

Demat'iNal,

Un collègue a récemment piqué mon intérêt (ouille) avec ce petit bout de code :

#include <map>
#include <iostream>

int main() {
    std::map<int, int> m;
    m[1] = m.size();
    std::cout << m[1] << std::endl;
    return 0;
}

Qui, compilé par deux version différentes de GCC (9.2 et 5.1) donne deux résultats différents (voir https://godbolt.org/z/4_xVPV).

Qu'en déduire (…)