C++17 : Résumé des nouveautés du langage (+Cheatsheet)

Ce post est similaire à celui déjà posté sur le C++14 mais concerne comme le titre l’indique les nouveautés de la norme C++17 pour le langage (et non la STL qui sera traité dans un autre article). Les exemples sont disponibles dans ce repository. J’ai également réalisé une cheatsheet qui peut être téléchargéé ci-dessous : Download PDF (A4) | Latex Déduction des arguments des templates de classe Avant le C++17, la déduction des types des templates était possible uniquement pour les fonctions, mais pas pour les classes. [Voir plus]
CPP  CPP17 

C++14 : Résumé des nouveautés du langage (+Cheatsheet)

La norme C++14 qui a été standardisée il y a déjà quatre ans, est considérée comme mineure si on la compare au C++11 et le C++17. Dans ce post, je vais décrire brièvement les changements apportés au langage (mais pas la STL). Des programmes exemples sont disponibles dans ce projet. J’ai également réalisé une cheatsheet qui peut être télécharger ci-dessous : Download PDF (A4) | Latex auto f(...) : type de retour de fonction auto Il est possible avec la norme C++14 de déclarer des fonctions avec un type de retour auto. [Voir plus]
CPP  CPP14 

C++17 : Fold Expressions

Le C++ a introduit dans la norme C++11 les variadic templates qui permettent d’écrire des fonctions templates avec un nombre variable de paramètres. Leur utilisation passait par l’écriture d’une fonction récursive. Par exemple pour écrire une fonction qui calcule la somme d’un nombre variable de paramètres, on pouvait faire ceci : auto sum() { return 0; } template<typename T, typename ... Ts> auto sum(const T& t, const Ts& ... ts) { return t + sum(ts . [Voir plus]
CPP  CPP17 

La bibliothèque Benchmark

Introduction Benchmark est une bibliothèque C++ développée par Google pour faire des mesures de performances de fonctions. Son installation sous linux peut se faire soit par compilation du code source disponible sur Github ou si la distribution la propose en utilisant le gestionnaire de package. Ubuntu dans sa version 18.1 propose la version 1.36 dans ses sources apt. utilisation L’utilisation de base est simple. On commence par une fonction qui a le prototype suivant : [Voir plus]

Utilisation de Boost Multi-index

Introduction Boost Multi-Index est une librairie qui fournit un type de conteneur de données appelé multi_index_container. La particularité de ce type est de fournir un ou plusieurs index permettant ainsi plusieurs méthodes d’accès dans le même conteneur. Par exemple, on peut indexer des données en définissant deux clés distinctes. Avec les conteneurs STL, il faut utiliser deux map, une pour chaque clé et s’assurer que les deux conteneurs sont mis à jours simultanément. [Voir plus]
CPP  Boost