Les coulisses du standard C++

Posté par (page perso) . Édité par Davy Defaud, Benoît Sibaud, ZeroHeure, tankey, M5oul et Anthony Jaguenaud. Modéré par Pierre Jarillon. Licence CC by-sa.
99
20
août
2016
C et C++

Le C++ a bientôt la quarantaine et pourtant très actif en ce moment avec la finalisation de la prochaine version C++17. Profitons‐en pour faire le point avec une série d’articles sur le C++. Cette première dépêche nous dévoile la face cachée du C++, et donc peut intéresser tous les lecteurs LinuxFr.org. :-)

Évolution du langage C++

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 (...)

C++17, Genèse d’une version mineure

Posté par (page perso) . Édité par Benoît Sibaud, Davy Defaud, cracky, palm123, Lucas, Adrien Dorsaz, M5oul, ZeroHeure, Storm, RyDroid et Martin Peres. Modéré par tankey. Licence CC by-sa.
Tags :
61
2
oct.
2016
C et C++

La série de dépêches C++ continue. Cette seconde dépêche nous amène dans les réunions du comité de standardisation en vue de publier la prochaine version C++17 et nous permettra de vérifier ce titre provocateur (comment ça mineure ?). Cette dépêche peut intéresser tous les lecteurs de LinuxFr.org, pas seulement les développeurs. Les prochaines dépêches seront plus techniques.

Deux collègues discutent : « C++ est enfin sorti », « Trop top », « Va falloir se palucher les 1700 pages du nouveau standard », « Gloups ». Une note repositionnable sur le dessin indique : « Il y en a qui ne connaissent pas encore LinuxFr.org »

C++17 fixe l’ordre d’évaluation des expressions

Posté par . Édité par Oliver, Davy Defaud, Benoît Sibaud et palm123. Modéré par Xavier Claude. Licence CC by-sa.
Tags :
56
1
déc.
2016
C et C++

Le C++ est un langage bien présent et depuis longtemps dans les logiciels libres (environnements de bureau, outils bureautiques, navigateurs Web…). L’an 2017 approche à grands pas avec la promesse d’un tout nouveau C++17.

Pour finir l’année, voici le calendrier de l’Avent du C++ avec des dépêches pédagogiques sur ce qui nous attend en 2017. Après deux dépêches de mise‐en‐bouche, nous entrons enfin dans le vif du sujet avec deux spécifications techniques concernant l’ordre d’évaluation des expressions. Allez, c’est parti !   ᕕ(ᐛ)ᕗ

Bjarne propose de changer le C++ pour corriger son livre qu'il tient dans ses mains

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 Pythran, en plein délire

Posté par (page perso) . Licence CC by-sa.
50
23
mai
2018

Cher journal, je dois te confesser que j'ai déclenché quelque chose dont j'ai un peu honte.

Tu te souviens bien sûr de Pythran, ce compilateur pour noyau scientifiques écrit en Python, et de ce petit détail d'implémentation qui veut que le compilateur commence par transformer les fonctions Python en fonctions C++ template (a.k.a. transformer du code Python en meta-programme C++ pour faire stylé voire pédant).

Un choix de design a été de faire en sorte que ces fonctions ne (...)

Journal C++17 est sur les rails

Posté par . Licence CC by-sa.
Tags :
50
12
mar.
2016

À la dernière réunion du comité de normalisation de C++ qui a eu lieu à Jacksonville (Floride), les fonctionnalités de C++17 ont été plus ou moins gelées. On sait désormais ce qu'il y aura dedans mais aussi ce qu'il n'aura pas dedans. Et ça crée pas mal de remous.

Dans les nouveautés attendues :

Journal [C++14 ] Expressions template pour les nuls

45
31
mai
2016

Expression Templates pour les nuls

Après un contact prolongé avec Joël Falcou, et pas mal de nœuds aux cerveaux pour arriver à émuler le comportement du broadcasting de Numpy avec des expression templates dans Pythran, j'ai eu l'envie soudaine, un peu folle peut-être, de réécrire un moteur d'expressions template en C++14, mais pour faire simple et didactique.

Mais de quoi zy parle

Les expressions templates sont une maintenant assez vieille technique de C++ qui permet par exemple d'éviter de (...)

Journal S'acheter son logement avec le salaire d'un expert C++ (ou autre techno)

Posté par (page perso) . Licence CC by-sa.
Tags :
43
6
nov.
2019

L’immobilier continue de monter et malgré les taux faibles, il est nécessaire d’avoir un gros salaire pour pouvoir rembourser son crédit. Ce journal explique comment devenir employable en C++ en peu de temps, se faire embaucher comme expert C++ et toucher le pactole afin d’obtenir un prêt immobilier pour le logement de ces rêves.

Pourquoi le C++ ?
Car je suis régulièrement contacté par des chasseurs de tête qui me proposent des salaires importants pour développer en C++. Et quand (...)

Journal Gestion de l'erreur - C++ - std::optional

Posté par (page perso) . Licence CC by-sa.
Tags :
39
3
sept.
2016

Introduction

Ce journal discute de la gestion d'erreur lors des appels de fonction. Dans la première partie, nous discuterons plusieurs solutions de gestion d'erreur classiques rencontrée dans de nombreux languages comme C, C++, Python, etc. Dans la seconde partie, nous présenterons std::optional<T>, une nouvelle classe de la librairie standard C++17 et nous discuterons comment celle-ci change la gestion d'erreur. Pour finir je donnerai un avis personnel sur l'API de cette classe que je n'aime pas, et je proposerai une (...)

C++17 indique la disponibilité des en‐têtes (header)

Posté par . Édité par Davy Defaud, Benoît Sibaud, Xavier Claude, ZeroHeure, Bruno Michel et Nils Ratusznik. Modéré par tankey. Licence CC by-sa.
Tags :
38
2
déc.
2016
C et C++

Chaque jour de décembre a droit à sa surprise. Après l'ordre d'évaluation, aujourd'hui, le calendrier de l’Avent du C++ présente la Spécification Technique P0061 concernant une macro magique : #define __has_include.

Une personne déprime de ne plus rien comprendre au C++ et son collègue le rassure que LinuxFr.org publie le calendrier de l'Avent du C++ avec des explications pédagogiques

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.

Journal Pythran 0.8.2 — compilation de noyaux scientifiques écrits en Python

Posté par (page perso) . Licence CC by-sa.
Tags :
38
14
sept.
2017

Mâtin, quel journal !

Pythran est bien vivant
Un vrai compilateur !
Et heure après heure,
Le bonheur vient en codant !

Mais des mois s’écoulèrent,
Sans que je postasse,
Le moindre mot dans l’air,
Ça manque un peu de classe

Et là, tout à coup, soudainement, surgit la version 0.8.2 de Pythran. Que s’est‐il passé depuis mon dernier soliloque sur LinuxFr.org ? Allez, plongeons dans le journal des modifications, mais avant ça, un petit rappel sur Pythran, par l’exemple.

Vous voyez ce bout (...)

C++ se court-circuite le constructeur de copie

Posté par . Édité par Oliver, Davy Defaud, lmg HS, gbdivers, gipoisson, Benoît Sibaud, palm123 et Storm. Modéré par tankey. Licence CC by-sa.
Tags :
38
11
déc.
2016
C et C++

Le calendrier de l’Avent du C++ continue. Après quelques trous dans le calendrier, aujourd’hui une nouvelle surprise : le court-circuit du constructeur de copie.

Cette fonctionnalité est présente dans le C++ depuis la nuit des temps et pourtant peu connue, alors que ses effets de bords peuvent être redoutables. Cette dépêche très pédagogique explique tous les détails d’une optimisation ultime.

Une nerd s’électrocute en touchant la vieille tour C++ de sa voisine à cause des effets de bords du court-circuit du constructeur de copie (C++98 copy elision)

Journal C++14

Posté par . Licence CC by-sa.
Tags :
38
31
août
2014

C'est officiel, depuis le 18 août dernier, une nouvelle version de C++ est sorti : C++14 ! Ce qui est le plus surprenant, c'est que les compilateurs du monde libre fournissent déjà cette version (alors qu'il avait fallu attendre de nombreux mois voire de nombreuses années pour les versions précédentes).

Pour rappel, C++14 n'est pas une révolution comme a pu l'être C++11, mais plutôt une évolution et une amélioration de C++11 avec quelques fonctionnalités supplémentaires. Pour le langage lui-même, on (...)