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

Posté par  (site web personnel) . Édité par Ysabeau 🧶 🧦, Davy Defaud, ZeroHeure, palm123, Pierre Jarillon, Nicolas Casanova et Benoît Sibaud. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
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.

C++17 libère size(), data() et empty()

Posté par  (site web personnel) . Édité par David Marec, Benoît Sibaud, Oliver, Davy Defaud, palm123, gbdivers, whity, claudex, audionuma et kp. Modéré par Davy Defaud. Licence CC By‑SA.
Étiquettes :
36
17
mar.
2018
C et C++

Cette évolution est dans la continuité de la libération de begin() et end() en C++11. Ces trois nouvelles fonctions, size(), data() et empty(), avaient été oubliées lors des deux dernières évolutions. Le C++17 corrige le tir.

Tout d’abord, nous allons revenir sur les raisons de cette évolution. Puis, nous détaillerons ce qu’apporte chacune de ces trois fonctions. Et, pour conclure, nous verrons comment on va pouvoir les utiliser.

Les fonctions empty(), data() et size() sortent de la prison « class » et rejoignent les fonctions begin() et end() qui les accueillent. Ces deux dernières fonctions accueillent également string_view. Derrières les barreaux de la prison des spécifications techniques, Unified-Call-Syntax va devoir y rester trois ans pour tenter de sortir avec C++20

Journal Jouons avec le ``switch`` et C++17

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
27
5
mar.
2018

Et non, ceci n'est pas un journal sur la switch, juste un partage rapide et amusé d'une version alambiquée mais qui fait tourner la tête (comme beaucoup de choses sortant d'un alambic, n'est ce pas ?):

template<unsigned N>
__attribute__((noinline)) void stuff()  {}

// manual switch
void manual_switch(int i) {
    switch(i) {
        case 0: return stuff<0>();
        case 1: return stuff<1>
(…)

C++17 exprime la virgule flottante en hexadécimal et offre des cadeaux aux lecteurs de LinuxFr.org

Posté par  . Édité par Davy Defaud, Oliver, ZeroHeure et Storm. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
30
7
déc.
2016
C et C++

Chaque jour (ouvré) de décembre a droit à sa surprise. Après le if constexpr, aujourd’hui, le calendrier de l’Avent du C++ présente la spécification technique P0245 concernant le littéral pour exprimer la virgule flottante en hexadécimal.

Les Nerdettes s’entraînent pour le concours des littéraux hexadécimaux sur LinuxFr.org

C++17 garantit le court-circuit de copie (suite de la précédente dépêche)

Posté par  . Édité par Oliver, Davy Defaud, David Marec, Snark, Benoît Sibaud et lmg HS. Modéré par bubar🦥. Licence CC By‑SA.
Étiquettes :
28
13
déc.
2016
C et C++

Le calendrier de l’Avent du C++ continue son bonhome de chemin. Chaque jour, ou presque, une nouvelle surprise est offerte aux lecteurs de LinuxFr.org. La dépêche sur l’élision de la copie nous a mis l’eau à la bouche :

Comment résoudre le dilemme entre cette optimisation et le fait de ne pas pouvoir en bénéficier dans un code portable ?

Alors, entrons dans les entrailles de la spécification technique P0135 guidés par cette dépêche pédagogique, et découvrons comment le C++ s’améliore de version en version.

Une fille nerd s’électrocute en touchant la nouvelle tour C++17 de sa voisine avec garantie de court-circuit de copie

C++17 branche à la compilation (`if constexpr`)

Posté par  . Édité par Oliver, Davy Defaud, Benoît Sibaud et claudex. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
28
5
déc.
2016
C et C++

Chaque jour de décembre a droit à sa surprise. Après la fixation de l’ordre d’évaluation des expressions, aujourd’hui, le calendrier de l’Avent du C++ présente la spécification technique P0292 concernant les conditions à la compilation, grâce à if constexpr.

Logo C++FRUG représenté par un gros "C++" au centre du cercle de la Francophonie

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 bubar🦥. Licence CC By‑SA.
Étiquettes :
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)

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

Posté par  . Édité par Davy Defaud, Benoît Sibaud, claudex, ZeroHeure, Bruno Michel et Nils Ratusznik. Modéré par bubar🦥. Licence CC By‑SA.
Étiquettes :
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

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

Posté par  (site web personnel) . Édité par Benoît Sibaud, Davy Defaud, cracky, palm123, Lucas, Adrien Dorsaz, M5oul, ZeroHeure, Storm, RyDroid et Martin Peres. Modéré par bubar🦥. Licence CC By‑SA.
Étiquettes :
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 claudex. Licence CC By‑SA.
Étiquettes :
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

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

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
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 (…)

Les coulisses du standard C++

Posté par  (site web personnel) . Édité par Davy Defaud, Benoît Sibaud, ZeroHeure, bubar🦥, 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++

Douzième rencontre parisienne C++ mercredi 27 avril 2016

Posté par  (site web personnel) . Édité par Benoît Sibaud, ZeroHeure et bubar🦥. Modéré par bubar🦥. Licence CC By‑SA.
Étiquettes :
16
24
avr.
2016
C et C++

L'association C++FRUG organise la douzième rencontre parisienne C++ Francophone avec pour nom de code : decltype(new event).

Horaires Programme
19:00 Accueil
19:30 Présentations éclairs (Lightning talks)
20:00 Pause dinatoire, pizzas et bières offertes par Mobiskill Partner
20:30 Révolution des <algorithme> en C++17
21:15 Informations générales et fin de la rencontre

Journal C++17 est sur les rails

Posté par  (Mastodon) . Licence CC By‑SA.
Étiquettes :
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 :