Les coulisses du standard C++

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++

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

Posté par (page perso) . Édité par Benoît Sibaud, Davy Defaud, cracky, palm123, Lucas, Adrien Dorsaz, Storm, RyDroid, Martin Peres, M5oul et ZeroHeure. Modéré par Yvan Munoz. 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 H, Davy Defaud, Benoît Sibaud et palm123. Modéré par Xavier Claude. Licence CC by-sa
Tags :
55
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 C++17 est sur les rails

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

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

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 H, Davy Defaud, lmg HS, gbdivers, gipoisson, Benoît Sibaud, palm123 et Storm. Modéré par Yvan Munoz. Licence CC by-sa
Tags :
37
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, Xavier Claude, ZeroHeure, Bruno Michel et Nils Ratusznik. Modéré par Yvan Munoz. Licence CC by-sa
Tags :
37
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

Miam-Player 0.7.1

Posté par (page perso) . Édité par Nils Ratusznik, Xavier Teyssier et palm123. Modéré par Xavier Teyssier. Licence CC by-sa
32
7
avr.
2015
Son

Miam-Player est encore un lecteur audio qui se base sur Amarok 1.4, comme Clementine. Sauf que là, il ne s'agit pas d'un fork : tout a été codé à la main (avec amour) en réutilisant la bibliothèque VLC pour le décodage des fichiers audio, et la toute dernière version de Qt 5.

Journal C++ Core Guidelines

Posté par . Licence CC by-sa
Tags :
32
2
oct.
2015

En ce moment a lieu la conférence CPPCon qui regroupe la crème des acteurs du C++ et de son comité de normalisation. Au cours de cette conférence, Herb Sutter (le responsable du comité de normalisation, travaillant à Microsoft) et Bjarne Stroustrup (inventeur du C++) ont donné deux exposés sur la manière de bien écrire du C++.

Ils en ont profité pour dévoiler un guide des règles de bonne conduite pour C++ accompagné d'une bibliothèque, GSL (Guideline Support Library) permettant (...)

Journal Le réseau dans C++

Posté par . Licence CC by-sa
Tags :
31
24
nov.
2014

Faire du réseau de manière portable en C++, ça va devenir une réalité ! Le travail se fait dans une spécification technique (TS), c'est-à-dire dans une bibliothèque annexe qui sera figée pour C++17 et mise dans un namespace explicite : std::experimental.

Concrètement, la proposition qui en est à sa troisième révision, est largement fondée sur Boost.Asio qui, comme son nom ne l'indique pas, permet de faire à la fois du synchrone et de l'asynchrone. Elle me semble pour l'instant (...)

Edip (Easy Digital Imaging Processing), un programme de traitement d'image pour Linux

30
17
déc.
2015
Graphisme/photo

Edip (Easy Digital Imaging Processing) sur open-source-projects.net est un logiciel de traitement d'images orienté effets et filtres mais il peut faire beaucoup plus.

Edip est basé sur la bibliothèque opencv-3.0.0 et utilise pour interface humain machine Gtkmm-3.

Edip a été écrit en C++ et utilise le concept MVC (Model View Controller).

  • Model: une bibliothèque statique nommée libedip que vous pouvez réutiliser et modifier selon les termes de la license GPLv3 ;
  • View: la bibliothèque de widgets (contraction de Windows Gadgets) pour l'IHM ou GUI ;
  • Controller: une classe C++ faisant le lien entre le modèle et la vue et assurant le contrôle du programme.

Edip dispose d'une documentation expliquant les techniques de traitement d'images implémentées dans libedip donc dans Edip en anglais au format HTML consultable en ligne ou à télécharger au format zip.

Modeste contribution à Audacity sur l'affichage des temps

Posté par (page perso) . Édité par Benoît Sibaud, Nils Ratusznik, ZeroHeure et Nÿco. Modéré par patrick_g. Licence CC by-sa
Tags :
29
18
nov.
2014
Son

Audacity est un logiciel (GPLv2/C,C++/wxWidget) dédié "à la manipulation de données audio numériques.". Son développement est encore actif (dernière version : septembre 2013) et utilise SVN.

Cette dépêche est consacrée à un retour d'expérience sur un point précis : modifier la manière dont Audacity affiche le temps de début et de fin d'un fragment audio.