Monthly C++ Septembre 2012
Bienvenue dans cette nouvelle chronique mensuelle sur Developpez.com. Chaque mois, vous retrouverez une actualité comme celle-ci présentant différents articles parus sur la blogosphère anglophone à propos du C++. Nous avons sélectionné les meilleurs et nous vous proposons un petit résumé de chacun :
C++11
:fleche: C++11 Tutorial: Let Your Compiler Detect the Types of Your Objects Automatically
Danny Kalev vous propose un tutoriel sur l'inférence de type en C++11, pour se familiariser avec les mots-clés auto et decltype.
:fleche: Why make your classes final ?
Petite présentation d'un nouvel aspect de la norme C++11 : le mot clé final qui interdit l'héritage d'une structure de données.
:fleche: Rule of Zero
Article organisé autour d'une discussion de l'impact du C++11 sur la forme canonique orthodoxe de Coplien et ses précédents dérivés connus (rule of 4, 3, puis 2).
:fleche: C++ and Beyond 2012: Alexandrescu, Meyers, and Sutter - Ask Us Anything
Un vidéo sur le C++11 en général, par trois auteurs célèbres du C++.
Divers
:fleche: Unifying Generic Functions and Function Objects
Un article de Dave Abrahams sur la proposition N3418, destinée à ajouter les templates génériques (polymorphiques) dans la prochaine norme du C++.
:fleche: Functional Patterns in C++
Cet article est composé de trois vidéos d'une trentaine de minutes chacune, dans lesquelles Bartosz Milewski explique comment écrire en C++ quelques patterns utilisés dans un langage fonctionnel comme Haskell. Il aborde par exemple les foncteurs applicatifs, comment "curryfier" des fonctions, créer des monoïdes ou des monades. Le tout est facilement accessible aux développeurs C++, en laissant de côté l'aspect mathématique.
:fleche: Rich Pointers (Update) and Reflection
Dean Michael Berris met à pat quelques pensées sur la réflexion et sa proposition de "rich pointers" en C++.
:fleche: Programme d'étude sur le C++ bas niveau : les boucles
La neuvième partie de la série d'Alex Darby consacrée aux boucles !
:fleche: Windows x64 ABI: Stack Frames
Série d'articles détaillés, sur l'ABI de windows.
:fleche: Padding and Rearranging Structure Members
Un tutoriel sur l'alignement des structures en C.
Monthly C++ Juillet-Août 2012
Voici comme prévu la seconde sélection d'articles, regroupant les publications des mois de juillet et août.
Bonne lecture.
C++11
:fleche: Alexandrescu, Meyers, Sutter: On Static If, C++11 in 2012, Modern Libraries, and Metaprogramming
Une vidéo issue de C++ and Beyond sur le C++11, par trois auteurs célèbres.
:fleche: Reader Q&A: How to write a CAS loop using std::atomics
Herb Sutter répond à quelques questions posées par ses lecteurs sur std::atomic du C++11.
:fleche: Move Semantics in C++11 - partie 1 : A New Way of Thinking About Objects et partie 2 : Design and Implementation of Special Move Functions
Une introduction à la sémantique de mouvement par Danny Kalev.
:fleche: User-defined literals — Part I
Introduction aux littérales définies par l'utilisateur.
Programmation parallèle et concurrente
:fleche: Improving Futures and Callbacks in C++ To Avoid Synching by Waiting
Un article sur l'utilisation de std::future du C++11 et de la bibliothèque Parallel Pattern Library (PPL) de Microsoft.
:fleche: Matrix Multiplication with C++ AMP
http://channel9.msdn.com/Blogs/Danie...ion-with-C-AMP
Une vidéo d'exemple d'utilisation de la bibliothèque C++ AMP de Microsoft, permettant de faciliter la parallélisation sur GPU.
:fleche: The OpenACC Execution Model
Une série d'articles sur une autre bibliothèque facilitant la parallélisation sur GPU, OpenACC, basé que un ensemble de directive à ajouter dans le code, similaire à OpenMP.
Divers
:fleche: Stephan T. Lavavej - Core C++, 4 of n
Une série de vidéos pour approfondir certains points du C++ (partie 1 : Name Lookup - partie 2 : Template Argument Deduction - partie 3 : Overload Resolution - partie 4 : Virtual Functions).
:fleche: Deploying Static Analysis
Sur l'analyse de code, en complément de l'article de John Carmack Analyse statique de code.
:fleche: The C++ Standard Library: Utilities
Un extrait de la nouvelle édition du livre de référence sur la STL de Nicolai M. Josuttis.
:fleche: The Source of Doom... A six part series all about the Doom 3 source code
Pour les accros aux jeux, une séries de vidéo qui review le code de Doom 3.
Monthly C++ Septembre 2012
Dernière série d'articles de blog avant de prendre un rythme "normal" d'une annonce par mois (le premier lundi du mois). Cette sélection regroupe quelques articles datant de plusieurs mois.
C++11
:fleche: C++11 multithreading tutorial - partie 1, partie 2 et partie 3
Cette série de tutoriels présente l'utilisation des nouvelles fonctionnalités de programmation multithread ajoutées dans le C++11, avec des exemples de code.
:fleche: Perfect Forwarding of Parameter Groups in C++11
Cet article décrit le perfect forwarding, c'est-à-dire le passage de paramètres d'une fonction template dans une autre fonction en conservant parfaitement les caractéristiques de ces paramètres (lvalue/rvalue).
:fleche: C++11: unique_ptr
Cet article décrit l'utilisation des pointeurs intelligents unique_ptr et différents cas d'utilisation.
Programmation parallèle et concurrente
:fleche: Welcome to the Parallel Jungle!
Herb Sutter aborde les problématiques de la programmation parallèle et l'évolution du C++ pour améliorer la prise en charge.
:fleche: Jim Radigan: Inside Auto-Vectorization, 1 of n
Dans cette série d'articles, Jim Radigan décrit les nouvelles fonctionnalités d'auto-vectorisation de Visual Studio 2012.
Autres
:fleche: Part I of III: The LSP and value assignment
Un premier article sur le principe de substitution de Liskov, important à connaître (et respecter) lorsque l'on utilise l'héritage.
:fleche: The value of passing by value
Un article de Thiago Macieira, qui discute de la façon la plus efficace de passer des paramètres.
Bonne lecture et rendez-vous la semaine prochaine pour le Monthly C++ du mois de novembre.
Monthly C++ Novembre 2012
Bienvenue à tous dans votre rendez-vous mensuel : Monthly C++. Si vous vous intéressez au C++ et à son actualité dans le monde, vous êtes au bon endroit. Si le mois d'octobre avait définitivement pour thème la concurrence, ce mois-ci c'est la programmation fonctionnelle qui est à l'honneur, c'est d'ailleurs peut-être de s'y intéresser grâce à cette traduction parue récemment sur Developpez.com : Programmation fonctionnelle en C++.
Général
Highlights from the current ISO proposals.
Quand il ne parle pas de fonctionnel, Scott Prager écrit un article pour mettre en évidence les proposals du mailing du mois de Novembre disponible sur open-std.org.
C++11
Alignment Support
Cet article présente le support de l'alignement introduit par la nouvelle norme C++11 et qui a récemment été implementé dans gcc. Au programme : alignas, alignof, arithmétique de l'alignement et std::align.
Generalised Attributes
Un petit article présentant rapidement les attributs généralisés de la nouvelle norme C++11 qui ont récemment été implémentés dans gcc.
Different Forms of Polymorphism
C++Soup! nous parle de polymorphisme en C++ avec notamment le polymorphisme conceptuel, le type-erasure, etc.
Learn how to capture by move
La nouvelle norme C++11 a introduit les lambdas et la sémantique de déplacement, cet article est là pour parler des deux à la fois en expliquant tout simplement comment "move" un paramètre en capture d'une fonction lambda.
On superfluousness of std::move
Encore un article de Scott Meyers consacré à la sémantique de déplacement introduite par le C++11 mais celui-ci est plus explicite sur la différence entre std::move et std::forward et quand est-ce qu'il faut les utiliser.
Compile-time computations
Un article axé sur les calculs pouvant être effectués à la compilation : les expressions constantes dans la nouvelle norme C++11 à travers constexpr.
Fonctionnel
Monadic IO in C++
Au niveau programmation fonctionnelle, après avoir implementé fmap le mois dernier, ce mois-ci l'auteur s'intéresse aux Monades IO. Si vous ne connaissez pas les monades, il a rédigé un autre article à ce sujet : Understanding Monads.
Rethinking std::binary_function
Toujours au niveau fonctionnelle, le même blog nous propose de repenser std::binary_function de façon plus fonctionnelle. L'auteur explique tout ça en détail dans l'article.
Monadic Parsing in C++
Un article très technique qui explique dans les grandes lignes ce parser d'expressions mathématiques du même auteur réalisé grâce de façon fonctionnelle avec notamment des monades.
The Importance of Function Objects
Les fonctions objects, comment les utiliser, qu'est-ce qu'une fonction d'ordre supérieur ? etc.
Arrows and Kleisli in C++
Encore un concept de la programmation fonctionnelle et plus précisément du langage Haskell qui a droit à sa réécriture en C++ et cette fois-ci c'est Control.Arrow ou les Flèches en français !
Autres
Unicode and your application 1 of n
Premier article d'une série consacrée à "qu'est-ce que le support de l'Unicode dans les applications ?". Ce premier article représente un petit tour de l'Unicode sous ses différentes d'encodage : UTF-8, UTF-16, UTF-32, etc.
Unicode and your application 2 of n
Toujours dans le support de l'Unicode, cet article est là pour éclairer certains points et parler des problèmes de compatibilités.
Unicode and your application 3 of n
Troisième partie sur le support de l'Unicode avec un article axé sur la gestion par les compilateurs et l'environnement.
Integer Linear Time Sorting Algorithms
Un petit peu de benchmarks entre std::sort et quelques algorithms de tri comme le tri par base, etc. A la suite de ces tests, l'auteur propose quelques conclusions.
Vidéos
Exception-Safe Coding in C++
Est-ce que vous êtes sûr à 100% que votre code est exception-safe ? Voici deux vidéos pour vous perfectionner sur le sujet !
Compile-time computations
Un article axé sur les calculs pouvant être effectués à la compilation : les expressions constantes dans la nouvelle norme C++11 à travers const_expr.
:arrow: Et vous, avez-vous déjà lu un de ces articles ? Lequel vous a particulièrement intéressé ?
:arrow: Quand on voit la programmation fonctionnelle qui prend de plus en plus d'importance en C++, est-ce que ce paradigme peut devenir incontournable à l'avenir ?
Monthly C++ Décembre 2012
Bienvenue dans votre chronique mensuelle consacrée à l'actualité anglophone autour du C++. Ce mois-ci et contrairement aux mois précédents, nous retrouvons assez peu d'articles consacrés au C++11, en revanche Scott Pager sur son blog ne désemplit pas avec une moyenne de plus d'un article par semaine dédiée à la programmation fonctionnelle en C++, wow ! Sur ce, l'équipe C++ de Developpez.com vous souhaite de bonnes lectures.
Général
Improvements to the caching variable trick : article intéressant pour en savoir plus et mieux comprendre le caching en C++ !
C++ Benchmark : std::vector vs std::list vs std::deque : comme le mois précédent, l'auteur nous propose des petits benchmarks mais cette fois-ci plus axés sur les conteneurs de la STL.
Overload Journal #112 - December 2012 : le journal de l'ACCU a publié son édition du mois de novembre avec notamment un article C++ intitulé "Complex Logic in the Member Initialiser List".
Unicode and your application (4 of n) : input files : quatrième partie de cette série découverte le mois dernier, au programme cette fois : la gestion de l'unicode dans les fichiers d'entrée.
Size matters, part 2 & Size matters, part 3 : deuxième partie et troisième partie d'un article paru six mois plus tôt consacré aux tuples et à leurs représentations en mémoire et à quelques manipulations.
C++11
Constexpr unions : dans son blog, Andrzej nous propose des petites utilisations des expressions constantes du C++11 avec des unions !
Stupid name lookup tricks for C++11 : un article détente mais intéressant écrit par Eric Niebler sur le name lookup du C++11 et les problèmes engendrés.
Programmation GPU
Bolt: GPU acceleration for your C++ application : présentation de Bolt, une nouvelle bibliothèque C++ qui encapsule OpenCL et fournit un design proche de la STL pour des accélérations GPU dans son code.
Fonctionnel
std::move and lambda? It's just partial application! : le mois dernier, le Monthly C++ avait énuméré cet article : Learn how to capture by move. Ce mois-ci, Scott Prager nous propose de résoudre le problème avec une approche fonctionnelle : l'application partielle.
Fun with tuples : décidément, les tuples sont à l'honneur ce mois-ci, Scott Prager, encore lui, nous propose quelques petits algorithmes sur les tuples avec toujours une approche fonctionnelle.
Zipping and mapping : et comme s'il n'y en avait pas assez, l'auteur remet ça avec deux autres fonctions sur les tuples : Zipping and Mapping.
Quick and easy manipulating in C++ : un petit article du même blog pour se familiariser avec la manipulation des conteneurs STL dans un paradigme fonctionnel.
Vidéos et présentations
A Conversation with the C++ language designer, Bjarne Stroustrup : entretien audio avec Stroupstrup, créateur du langage C++ !
[ame="http://www.youtube.com/watch?v=0AURP1Nli5E"]A Conversation with the C++ language designer, Bjarne Stroustrup[/ame]
Facebook NYC Tech Talk - Three Optimization Tips for C++ : conférence d'une heure d'Andrei Alexandrescu sur l'optimisation en C++.
[ame="http://vimeo.com/55639112"]Facebook NYC Tech Talk - Andrei Alexandrescu "Three Optimization Tips for C++"[/ame]
Using cxx::types : présentation d'un ingénieur de Facebook à propos de l'utilisation du C++ au sein de la firme.
[ame="http://www.slideshare.net/delongj/using-cxxtypes"]using cxx::types[/ame]