Journal CPPP

Posté par (page perso) . Licence CC by-sa.
Tags :
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:

(...)

Moi, expert C++, j’abandonne le C++

Posté par (page perso) . Édité par Ysabeau, Davy Defaud, ZeroHeure, palm123, Pierre Jarillon, Nicolas Casanova et Benoît Sibaud. Modéré par ZeroHeure. Licence CC by-sa.
Tags :
54
6
juin
2019
C et C++

Ma carrière professionnelle de développeur C a débuté en 1994 et j’ai naturellement adopté avec enthousiasme le C++ en 1999. J’étais un développeur C++ heureux et j’avais considéré la nouvelle version du standard C++11 juste comme une évolution tant attendue. En 2015, je réalise enfin à quel point, il a révolutionné l’écosystème C++ et ses bouleversements dans l’état d’esprit de la communauté. Je me passionne alors pour C++11, C++14, puis C++17, je m’implique beaucoup, je deviens un référent pour mes collègues, je donne des conférences sur ce langage, j’organise des meet‐ups à Paris, je publie de nombreux articles C++ sur LinuxFr.org

En 2018, une expérience change radicalement ma façon d’appréhender le développement logiciel.

Journal Moi, expert C++, j'abandonne le C++

Posté par (page perso) . Licence CC by-sa.
86
3
juin
2019
Ce journal a été promu en dépêche : Moi, expert C++, j’abandonne le C++.

Je profite de cette anecdote pour rédiger un long journal afin de partager mon expérience et mon apprentissage en espérant t’apprendre de nouveaux points de vue.

Peut-être cela vaut le coup d'en faire une dépêche… Dis-le moi dans les commentaires. 😉

Ma passion C++11, C++14, C++17…

Ma carrière professionnelle de développeur C a débuté en 1994 et j’ai naturellement adopté avec enthousiasme le C++ en 1999.
J’étais un développeur C++ heureux et j'avais considéré la nouvelle version du standard C++11 (...)

Forum Programmation.c++ Passer un pointeur de membre de classe à une fonction statique ou une lambda sans capture?

Posté par . Licence CC by-sa.
0
13
mar.
2019

Bonjour.

Je suis en train de me faire la main sur l'interfaçage de Lua avec le C++. J'ai compris qu'il existe une tripotée de bibliothèques pour faire ça mais je voudrais profiter de l'occasion pour affûter ma pratique des patrons en C++ sur la résolution d'un casse-tête (cherchez pas, j'aime bien ça).

Le contexte

L'idée que je poursuis est de passer un pointeur vers un membre d'une classe quelconque à une fonction statique ou une lambda (mais celle-ci doit être (...)

Quelques cadriciels Web C++ (2/2)

Posté par (page perso) . Édité par Davy Defaud, Benoît Sibaud, ZeroHeure, tankey, Xavier Claude et palm123. Modéré par patrick_g. Licence CC by-sa.
Tags :
38
12
déc.
2018
C et C++

Actuellement, il existe de nombreux langages et cadriciels intéressants pour le développement Web back‐end. Dans ce domaine, le C++ n’est pas le langage le plus à la mode, mais il possède cependant des atouts intéressants. En effet, le C++ possède de nombreuses bibliothèques (dont des cadriciels Web), il est réputé pour ses performances et, enfin, ses dernières normes le rendent plus agréable à utiliser.

L’objectif de cet article est de donner un aperçu des outils C++ disponibles pour le développement Web back‐end, à partir d’un exemple d’application. Les codes sources présentés ici sont disponibles sur ce dépôt Git. Les différents cadriciels utilisés sont résumés en annexe (partie 2). Enfin, une liste de bibliothèques C++ est disponible sur Awesome C++.

Partie 2 : les cadriciels Web.

Quelques cadriciels Web C++ (1/2)

Posté par (page perso) . Édité par Davy Defaud, ZeroHeure, Julien Jorge, palm123, Benoît Sibaud, tankey et Xavier Claude. Modéré par ZeroHeure. Licence CC by-sa.
Tags :
34
9
déc.
2018
C et C++

Actuellement, il existe de nombreux langages et cadriciels (frameworks) intéressants pour le développement Web côté serveur. Dans ce domaine, le C++ n’est pas le langage le plus à la mode, mais il possède cependant des atouts intéressants. En effet, le C++ dispose de nombreuses bibliothèques (dont des cadriciels Web), il est réputé pour ses performances, enfin ses dernières normes le rendent plus agréable à utiliser.

L’objectif de cet article est de donner un aperçu des outils C++ disponibles pour le développement Web back‐end, à partir d’un exemple d’application. Les codes sources présentés ici sont disponibles sur ce dépôt Git. Les différents cadriciels utilisés sont résumés en annexe (partie 2). Enfin, une liste de bibliothèques C++ est disponible sur Awesome C++.

Partie 1 : exemple d’application, génération de HTML et accès à une base de données.

Journal Un harnais de test pour Qt

Posté par (page perso) . Licence CC by-sa.
Tags :
8
7
déc.
2018

Bonjour Nal,

Je viens de publier ce harnais de test qui permet de lancer facilement des tests écrits avec le moteur de Qt et de collecter les résultats dans un rapport en HTML.

Le contexte

Qt fournit quelques classes pour réaliser des tests unitaires, mais ils proposent de générer une application séparée pour chaque test, et de les lancer toutes à la fois via un "make check". Les résultats sont alors affichés sur la console et pénibles à lire. De (...)

Journal Déployer une application web C++ sur Heroku avec Docker et Nix

Posté par (page perso) . Licence CC by-sa.
17
15
nov.
2018

Les services de plateforme (PaaS) comme Heroku permettent de déployer des applications web écrites dans des langages comme PHP, Ruby, Java… Cependant, déployer des applications C++ est plus compliqué (portabilité de l'interface binaire ABI, gestion des dépendances…). Ce post présente plusieurs solutions pour déployer des applications web C++ sur Heroku, en utilisant des images Docker et le gestionnaire de paquet Nix.

Voir aussi : code source - vidéo youtube - vidéo peertube

Exemple d'application web C++ avec

(...)

Journal Spacewar! pour Haiku

Posté par (page perso) . Licence CC by-sa.
33
11
nov.
2018

Bonjour Nal,

Bon voilà, il fait froid dehors, je suis un peu fatigué et j'ai pas envie de replonger tout de suite dans le code de WebKit pour trouver pourquoi il est persuadé de ne pas savoir traiter les tags aujourd'hui, mes slides pour le Capitole du Libre sont prêtes (enfin à peu près…)…

C'est le moment de porter Spacewar! sur Haiku!

Spacewar! est un jeu vidéo écrit à l'origine pour le PDP-1 entre 1961 et 1962 (en savoir (...)

Journal Conversion entre pointeurs de fonctions incompatibles

Posté par (page perso) . Licence CC by-sa.
Tags :
14
7
nov.
2018

Posons nous dans le cas suivant (oui ça commence direct)

int strange_apply(int (*f)(int) {

    return reinterpret_cast<(int(*)(int, int)>(f)(1, 2);

}

Ce code compile avec un warning depuis le dernier gcc, et c'est bien car c'est en fait un undefined behavior (cast entre types de fonctions incompatibles dans le cas présent).

Et pourtant on voit pas mal de code (...)

Verilator 4.002

Posté par (page perso) . Édité par Davy Defaud, BAud, ZeroHeure, tankey, palm123 et Benoît Sibaud. Modéré par ZeroHeure. Licence CC by-sa.
29
24
sept.
2018
Matériel

La version 4.002 de Verilator a été annoncée à la conférence ORConf2018 en Pologne.

Verilator est sans conteste le simulateur HDL open source le plus rapide du « marché ». Il permet de simuler des porte‐grammes écrits en Verilog synthétisable.

Le nouveau logo de Verilator

Journal Le quiz c++ de l'été - Débriefing

Posté par (page perso) . Licence CC by-sa.
Tags :
12
31
août
2018

Très bonne discussion sur le fil du Quizz C++ de l'été !

Sur le problème en lui-même, Clément V a donné la bonne réponse en parlant de temporaire dans le 4ème appel (shared_ptr de B). Je vais développer :

Les deux premiers appels sont identiques en terme de code machine. En effet, en C++, un objet B dérivant de A est, au point de vue de l'arrangement mémoire, un A, suivi des attributs de B (oublions l'héritage virtuel pour le (...)

Journal Ⓒ✙✙ Le tiret bas (underscore) au début des variables membres ?

11
18
août
2018

En réponse à guppy, j’ai rédigé un long commentaire qui mérite d’être promu en journal.   \_o_/

La norme C++ réserve l’utilisation du tiret bas (underscore)

Résumé de la norme Ⓒ✙✙ : https://en.cppreference.com/w/cpp/language/identifiers

[…]

An identifier can be used to name objects, references, functions, enumerators, types, class members, namespaces, templates, template specializations, parameter packs, goto labels, and other entities, with the following exceptions:

  • the identifiers that are keywords cannot be used for other purposes;
  • the identifiers with a double underscore (...)