samedi 25 juin 2016

Métaprogrammation



Les meilleurs Cours et Tutoriels C++

Nombre d´auteurs : 94, nombre de traducteurs : 1, nombre d´articles : 51, dernière mise à jour : 13 janvier 2016 
Sélection des meilleurs tutoriels et cours de formation gratuits pour apprendre la programmation C++. Vous trouverez les meilleures méthodes éducatives pour une formation agréable et complète, ainsi que des exercices intéressants, voire ludiques. Vous pouvez aussi trouver des exercices offerts en sus des cours pour perfectionner votre niveau et acquérir de l'expérience. N'hésitez pas aussi à vous référer à la FAQ C++ et à poser vos questions sur les forums d'entraide C++120 commentaires Donner une note à l'article (5)
POUR DÉBUTER

  • fr
    Comment débuter en C++ ? 
    par Alp Mestan
    Vous souhaitez apprendre la programmation C++ mais ne savez pas comment vous y prendre, par quoi commencer ? Cet article est fait pour vous ! Des outils les plus adaptés jusqu'aux meilleures ressources pour apprendre, cet article vous donnera toutes les pistes nécessaire pour effectuer un apprentissage correct du langage C++.
    Création : 11 juin 2009  · Mise à jour : 24 août 2012  · 21 commentaires Donner une note à l'article (5)
     

Sommaire

MENUCOURS MAGISTRAUX ET INITIATION EN C++

  • fr
    Comment débuter en C++ ? 
    par Alp Mestan
    Vous souhaitez apprendre la programmation C++ mais ne savez pas comment vous y prendre, par quoi commencer ? Cet article est fait pour vous ! Des outils les plus adaptés jusqu'aux meilleures ressources pour apprendre, cet article vous donnera toutes les pistes nécessaire pour effectuer un apprentissage correct du langage C++.
    Création : 11 juin 2009  · Mise à jour : 24 août 2012  · 21 commentaires Donner une note à l'article (5)
     

  • fr
    Le Langage C++ 
    par Henri Garreta
    Un cours de programmation C++ très clair et très complet par Henri Garreta, membre permanent du département d'Informatique de l'Université de la Méditerranée.
    Création : 23 janvier 2007 
     

  • fr
    Méga Cours de C & C++ 
    par Christian Casteyde
    Ce cours de formation à la programmation C et C++ se place dans la catégorie "guide de l'utilisateur" : son but est de permettre à une personne sachant programmer, d'acquérir les éléments fondamentaux du langage C. Ce manuel présente donc chaque notion selon une gradation des difficultés et ne cherche pas à être exhaustif. Il comporte de nombreux exemples, ainsi que des exercices dont la solution se trouve dans le corps du texte, mais commence toujours sur une page différente.
    Création : 23 janvier 2007 
     

  • fr
    Penser en C++ volume 1 
    par Bruce Eckel
    Premier volume du célèbre "Thinking in C++" traduit en français par l'équipe de Developpez.com.
    Création : 1er septembre 2008 
     

  • ang
    Les versions anglaises du très célèbre et très complet Thinking in C++, volumes 1 et 2 dans leur seconde édition.
    Création : 23 janvier 2007 
     

  • fr
    Introduction Objet et C++ 
    par Philippe Dosch
    Ce cours est une introduction à la conception Objet et à la programmation en langage C++.
    Création : 23 janvier 2007 
     

  • fr
    Le C++ pour les Pros 
    par Bruno Garcia
    Destiné à ceux qui connaissent déjà les bases du langage C++, ce livre de cours de 40 pages traite des fonctions avancées en programmation C++ : forme canonique de Coplien, surcharge, références, exceptions, transtypages, etc.
    Création : 23 janvier 2007 
     
  • PDF on-line ZIP 
    fr
    Les règles d'or de la programmation 
    par Alexandre Laurent
    Cet article recueille des conseils et les bonnes pratiques à adopter en programmation.
    Création : 18 décembre 2012  · Mise à jour : 3 mars 2013  · 8 commentaires Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    Cet article explique comment écrire un algorithme similaire à ceux présents dans la bibliothèque standard du C++.
    Création : 28 mai 2015  · Commentez Donner une note à l'article (4.5)
     
  • PDF on-line ZIP 
    fr
    Tous ceux qui nous lisent ont déjà probablement entendu parler de la « programmation fonctionnelle » présentée comme pouvant apporter des avantages au développement logiciel ou même vantée comme étant un remède miracle. Toutefois, une visite sur Wikipédia pour plus d'informations peut être au premier abord rebutant, avec dès le départ des références au lambda-calcul et aux systèmes formels. Il n'est pas clair immédiatement de voir ce que cela apporte pour écrire de meilleurs logiciels.
    Création : 5 décembre 2012  · 8 commentaires Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    Cet article a pour objectif de vous aider à mettre en place un environnement de développement C/C++ avec Eclipse. Il s'adresse aux débutants en programmation C/C++ et à ceux qui commencent leur prise en main de cet EDI qu'est Eclipse. À la fin de cet article, vous aurez l'environnement requis pour parvenir à compiler et à déboguer vos programmes C ou C++, tout en disposant de l'éditeur de code source C/C++ et de l'ensemble des fonctionnalités offertes par la plate-forme Eclipse.
    Bien que cet article soit davantage utile aux utilisateurs développant sous Windows (du fait de l'absence d'outils C/C++ installés en standard sur celui-ci), les utilisateurs Linux et Mac OS X pourront également en tirer profit.
    Création : 1er octobre 2012  · Mise à jour : 3 avril 2013  · 8 commentaires Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    Cet article est une traduction de Five Popular Myths about C++, un article publié en trois parties par Bjarne Stroustrup (Morgan Stanley, Columbia University, Texas A&M University), le créateur du langage C++.
    Création : 15 mars 2015  · 23 commentaires Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    Vous êtes face à un bogue et vous ne savez pas où il se trouve. Les printf/cout/println (ou autres fonctions affichant du texte) ne mènent à rien de concret et ne vous aident pas. On vous dit d'utiliser un « débogueur ». Vous en avez un, mais vous ne l'avez jamais utilisé et vous ne savez pas quoi faire. Cet article est pour vous !
    Création : 17 mars 2015  · Commentez Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    Aujourd'hui, pratiquement toute application peut être étendue avec de nombreux types différents de greffons ou de plugins. Grâce à ceux-ci, nous pouvons écrire de nouvelles fonctions pour nos applications préférées sans les recompiler chaque fois que nous voulons les étendre ou les modifier. Je vais vous dire comment écrire une application modulaire en C++.
    Création : 5 mai 2015  · 9 commentaires Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    Dans l'Introduction à la programmation d'applications modulaires en C++, j'ai décrit quelques exemples simples. Dans cette partie, je vais vous montrer des applications plus sophistiquées qui utilisent également des modules. Les exemples de cette partie seront orientés objet et présenteront une approche plus professionnelle de la programmation d'applications modulaires.
    Dans cette partie, je vais vous montrer deux exemples. Le premier est la solution de l'exercice que je vous ai donné à la fin du dernier article. On vous demandait d'écrire une calculatrice qui pouvait additionner des nombres, les soustraire et charger des modules pour effectuer d'autres opérations. Le deuxième exemple, que je vais écrire pour vous, est un interpréteur système (également appelé ligne de commande).
    Création : 20 mai 2015  · 9 commentaires Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    Dans la dernière partie de Programmation des applications modulaires en C++, je vous ai montré quelques exemples pratiques d'applications modulaires. Ces applications fonctionnent probablement correctement avec vos plugins dédiés. Les problèmes surviennent lorsque vous essayez de mélanger des plugins écrits par vos utilisateurs compilés à l'aide de compilateurs différents (cela peut fonctionner) ou bien pour des systèmes d'exploitation différents (cela ne peut pas fonctionner !).
    Lorsque nous concevons de véritables applications, nous ne pouvons utiliser cette approche que très rarement. Nous n'avons la garantie que les plugins, issus de bibliothèques partagées liées dynamiquement, fonctionneront comme ils le doivent que si nous les compilons avec la même version de compilateur et de système d'exploitation que ceux utilisés pour produire les fichiers binaires des applications. La deuxième restriction avec l'approche que j'ai présentée dans les deux derniers articles (introduction et première partie) est que ces programmes fonctionneront seulement avec certains systèmes compatibles UNIX. Si nous avons besoin d'applications modulaires portables, nous devons utiliser des bibliothèques dédiées qui proposent des interfaces portables. Un exemple de ce type de bibliothèques est Poco::SharedLibrary. J'écrirai quelque chose là-dessus plus tard.
    Création : 27 mai 2015  · 9 commentaires Donner une note à l'article (5)
     
MENULES FONDAMENTAUX EN C++

  • fr
    La bibliothèque C++ STL 
    par Bruno Garcia
    Ce cours traite de la bibliothèque standard C++ (STL) et présente ses classes les plus utilisées.
    Création : 23 janvier 2007 
     

  • fr
    Cet article constitue une description des concepts nécessaires à une bonne utilisation des algorithmes de la STL. Il fournit des informations sur chacun de ces algorithmes (complexité, précisions sur l'utilisation, etc.), ainsi qu'un exemple d'utilisation pour chacun d'entre eux.
    Création : 4 septembre 2007  · Mise à jour : 6 mars 2008 
     

  • fr
    Les algorithmes de tri en C++ 
    par Michaël Gallego
    Tutoriel sur les algorithmes de tris fournis par la STL.
    Création : 14 août 2007  · Mise à jour : 30 novembre 2007 
     

  • fr
    En programmation C++, il n'y a pas de destruction automatique des objets lorsque l'on perd leur trace dans le code source. Les objets ainsi perdus le sont définitivement, on parle alors de fuite. C'est donc au programmeur C++ qu'incombe l'entière responsabilité de gérer le cycle de vie des objets alloués. Il s'agit donc là d'une problématique centrale dans ce langage, qui doit être réfléchie et résolue de manière globale. C'est ce que des experts ont fait, et des techniques spécifiques apportant une réponse globale au problème de la gestion des ressources (et non pas seulement au cas particulier de la mémoire) ont été développées. Ces pratiques sont à la fois robustes et élégantes, mais restent cependant peu connues et sous-utilisées. Le but de cet article est d'accroître leur notoriété au travers de leur mise en oeuvre dans le cas d'un problème classique de gestion de ressource limitée.
    Création : 9 juillet 2007 
     

  • fr
    Ce document présente un outil indispensable à l'écriture de code correct en C++ : Les pointeurs intelligents. Après une présentation du problème que ces pointeurs aident à résoudre, il décortique comment il est possible de créer un tel pointeur, et enfin présente les pointeurs intelligents les plus courants, et comment les utiliser.
    Création : 4 août 2008 
     

  • fr
    Tutoriel pour apprendre à bien utiliser les pointeurs
    Création : 10 mars 2005 
     

  • fr
    Le C et le C++ sont deux langages proches au niveau de leur syntaxe et de leur grammaire (si l'on met de côté les propriétés objet du C++), cependant il existe un certain nombre d'incompatibilités qui fait qu'un programme écrit en C peut ne pas compiler avec un compilateur C++. La plupart des incompatibilités listées ci-dessous, en particulier celles valables pour le C90, peuvent être évitées avec un compilateur bien configuré et de bonnes habitudes de programmation.
    Création : 24 juillet 2005  · 1 commentaire Donner une note à l'article (5)
     

  • fr
    Les fonctions virtuelles sont un des piliers de la programmation orientée objet. En favorisant l'abstraction, elles permettent la construction d'architectures logicielles stables et évolutives. Cet article se propose d'explorer les fonctions virtuelles dans le langage C++ en abordant aussi bien les problèmes syntaxiques que les conséquences sémantiques de leur utilisation.
    Création : 19 novembre 2009  · Mise à jour : 6 janvier 2010  · 18 commentaires Donner une note à l'article (5)
     

  • fr
    Les Guru of the Week en français 
    par L'équipe de rédaction C++
    C'est une source d'information que les développeurs expérimentés connaissent bien. Guru of the Week (GotW) est un site créé et alimenté par Herb Sutter entre 1997 et 2003. Le principe est simple : une question technique est posée et les lecteurs interviennent pour répondre à la question en essayant de faire le tour de toutes les difficultés techniques qui pourraient apparaître. Une note sur 10 indique le niveau de difficulté de la question. Cette discussion aboutit à une analyse en profondeur de la problématique posée.
    Création : 21 juin 2011  · 16 commentaires Donner une note à l'article (5)
     

  • fr
    Retour de fonctions ou exceptions ? 
    par Alexandre Laurent
    C'est une des guerres de religion dans la théorie des langages de programmation : faut-il choisir de retourner un code d'erreur ou utiliser une exception ? Vous trouvez que la mise en place d'un code prévenant toutes erreurs est lourde. Cet article est là pour vous aider à apprendre comment écrire un code simple et sain.
    Création : 25 mai 2012  · 48 commentaires Donner une note à l'article (4)
     

  • fr
    Performances des exceptions C++ 
    par Alexandre Laurent
    Les exceptions fournissent un moyen pour signaler des conditions spéciales qui modifient le flux habituel de l'exécution du programme. La gestion des exceptions peut se référer soit à l'implémentation dans un langage de programmation, soit au mécanisme matériel de l'ordinateur ou les deux à la fois.
    De nombreuses personnes sont concernées par l'impact sur les performances des exceptions en C++. Par exemple, un de mes collègues croit que l'utilisation des exceptions doit être évitée à tout prix pour améliorer la vitesse d'exécution d'une application. Est-ce vrai ou pas ? Allons voir !
    Création : 21 juillet 2012  · 27 commentaires Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    L'analyse statique de code permet d'améliorer la qualité d'un code et de minimiser les risques d'apparition d'erreurs. Dans cet article, John Carmack, le célèbre développeur de Doom et Quake, compare différents outils d'analyse statique de code et plus généralement ce qui fait la qualité du code.
    Création : 24 septembre 2012  · Mise à jour : 6 octobre 2012  · 8 commentaires Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    Un adage populaire veut que tout programmeur soit le plus fainéant possible. Et la manipulation de code source déjà écrit (dans un but de refactorisation par exemple) est une tâche pénible qui doit revenir à l'ordinateur.
    Le but de cet article est de présenter libclang, une interface à clang qui va nous aider dans cette tâche. Le but final de l'article est d'écrire un petit outil pour créer automatiquement des fichiers squelettes à partir des headers (header-expander).
    Création : 19 janvier 2014  · Commentez Donner une note à l'article (5)
     
MENUCONCEPTION ET DESIGN PATTERN EN C++

  • fr
    Ce tutoriel vise à présenter de manière relativement concise les objectifs de la conception et de la programmation par contrat, ainsi que les techniques de mise en oeuvre dans le langage C++. Le lecteur est supposé connaître les bases de la programmation, de l'approche orientée objet et de la généricité. Ce tutoriel s'adresse donc à des développeurs de niveau moyen à expérimenté.
    Création : 15 décembre 2009  · 16 commentaires Donner une note à l'article (5)
     

  • fr
    Cet article a pour but de vous présenter la majorité des design patterns via un exemple de besoin qui sera complété par une mise en pratique en C++.
    Création : 20 février 2008 
     

  • fr
    Vous souhaitez introduire de la "qualité logicielle" au sein de vos applications ? Sans augmenter les coûts ? En facilitant la maintenance ? En rendant votre programme évolutif ? Vous faites de la Programmation Orientée Objets ? Alors cet article devrait vous intéresser...
    Création : 13 juin 2006 
     

  • fr
    Une analyse de plusieurs implémentations possibles du fameux Design Pattern State en C++.
    Création : 2 octobre 2009  · 33 commentaires Donner une note à l'article (5)
     

  • fr
    Utiliser le pattern Object Pool 
    par Matthieu Brucher
    Le pattern Object Pool sert à gérer une quantité finie d'objets de même type utilisés couramment, sans qu'on veuille permettre de construction ou de destruction lors de l'utilisation d'une instance de ces objets. On peut aussi empêcher de cette manière la création de "trop" d'instances.
    Création : 18 septembre 2006 
     

  • fr
    Utiliser le pattern Registry 
    par Matthieu Brucher
    Le pattern Registry est un pattern méconnu mais largement utilisé dans de nombreux cas. Il est utilisé pour gérer les paramètres d'un programme - exemple typique, la base de registres de Windows est un registre particulier -, les tests unitaires sont enregistrés dans un registre dans certaines implémentation - comme celles de JUnit -, ou plus simplement des menus.
    Création : 15 décembre 2006 
     
MENULES NOTIONS AVANCÉES EN C++

  • fr
    Héritage multiple en C++ 
    par Loïc Joly
    Cet article a pour objectif d'étudier les différents types d'héritage multiple que l'on trouve généralement dans les langages de programmation orientés objet à base de classes. Plus précisément, il va comparer l'héritage multiple à une version bridée, nommée héritage multiple d'interfaces, que l'on trouve dans certains langages ; ceci afin de montrer en quoi les limitations introduites par cette dernière me semblent problématiques pour mettre en place une bonne architecture de code.
    Cet article n'est pas une introduction à l'héritage (qu'il soit simple ou multiple). Il n'entrera pas non plus dans les détails et les difficultés d'implémentation de l'héritage multiple mais se concentrera sur le point de vue de l'utilisateur du langage.
    Création : 18 juin 2011  · Mise à jour : 23 septembre 2011  · 29 commentaires Donner une note à l'article (5)
     

  • fr
    Programme d'étude sur le C++ bas niveau 
    par L'équipe de rédaction C++
    L'objectif de cette série d'articles d'Alex Darby sur la programmation « bas niveau » est de permettre aux développeurs ayant déjà des connaissances de la programmation C++ de mieux comprendre comment leurs programmes sont exécutés en pratique.
    Création : 10 septembre 2012  · 24 commentaires Donner une note à l'article (5)
     

  • fr
    Les nombres à virgule flottant 
    par L'équipe de rédaction C++
    Une partie des erreurs que l'on retrouve régulièrement en C++ vient d'une connaissance superficielle de la manipulation des nombres réels en informatique. Dans la série d'articles "flotting point", Bruce Dawson aborde en détail les problématiques liées à la représentation des nombres à virgule flottante.
    Création : 4 septembre 2012  · 12 commentaires Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    Ce tutoriel vous montre comment vérifier puis envoyer des e-mails en C++ avec boost mais vous pouvez très bien reprendre et adapter l'algorithme pour envoyer des e-mails avec d'autres langages ou bibliothèques.
    Création : 6 juin 2013  · Mise à jour : 7 juin 2013  · 11 commentaires Donner une note à l'article (4.5)
     
  • on-line 
    fr
    Le chat de Dvp est le lieu de rendez-vous quotidien des devs C++ et de nombreuses discussions techniques sur le C++ soulèvent des interrogations sur des points particuliers du langage. Il nous est apparu qu'une faille dangereuse et non détectée par le compilateur résultait de l'utilisation conjointe de la déduction automatique de type retour des lambdas et des std::function<const A&()> qui retournent une référence constante.
    Création : 15 mai 2013  · Commentez Donner une note à l'article (0)
     
  • PDF on-line ZIP 
    fr
    Métaprogrammation et métafonctions en C++11 
    par Andrzej KrzemienskiBlog
    Création : 3 mars 2015  · Commentez Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    Les outils modernes fournis avec la bibliothèque standard du C++11 permettent de combattre les fuites de mémoire et les erreurs plus facilement et plus efficacement. Parfois, les problèmes qui ne semblent apparemment pas dangereux peuvent planter votre application. Nous allons apprendre comment les traquer et les éviter.
    Création : 5 mai 2015  · 9 commentaires Donner une note à l'article (5)
     

  • fr
    La métaprogrammation en C++ 
    par Laurent Gomila
    Cet article vous présente l'utilisation de la méta-programmation en C++ à l'aide des templates.
    Création : 23 janvier 2007 
     

  • fr
    Cet article a pour but de vous présenter ces notions afin que vous puissiez les utiliser correctement dans vos applications, ce qui rendra vos structures bien plus flexibles et puissantes.
    Création : 16 juillet 2007 
     

  • fr
    Si vous utilisez les templates du C++ pour écrire des composants génériques, vous avez déjà peut-être voulu les combiner à la programmation orientée objet, via de l'héritage par exemple. Peut-être avez-vous eu des difficultés ; cet article va vous présenter une technique répandue, nommée Type Erasure, qui vous permettra de tirer profit des deux mondes sans perdre en flexibilité ni en maintenabilité.
    Création : 15 juin 2009  · 29 commentaires Donner une note à l'article (5)
     

  • fr
    Template rebinding en C++ 
    par Alp Mestan
    Cet article va vous présenter le template rebinding, technique utilisée en C++ grâce aux templates, qui peut paraötre assez obscure au premier abord.
    Création : 26 juillet 2007 
     

  • fr
    Vous avez toujours rêvé de savoir à quoi correspondait ABI, name mangling, et autres virtual tables ? Vous savez déjà ce dont il s'agit, mais vous aimeriez en savoir plus ? Alors cet article est pour vous !
    Cette article est une traduction de Some thoughts on binary compatibility.
    Création : 16 septembre 2009  · 6 commentaires Donner une note à l'article (5)
     

  • fr
    Liées aux problèmes des A.B.I., cet article évoque les conventions d'appels.
    Cette article est une traduction de Some thoughts on calling convention.
    Création : 16 septembre 2009  · 6 commentaires Donner une note à l'article (5)
     

  • fr
    Cet article présente une technique pour appeler des méthodes de certaines classes dans un système de type « script ». Dans une telle situation, les méthodes et leurs paramètres ne sont connus qu'à l'exécution, sous la forme de chaînes de caractères.
    Création : 27 janvier 2010  · 12 commentaires Donner une note à l'article (5)
     
MENUAUTRES

  • fr
    La nouvelle norme du C++ sortie en 2011 (le C++11) propose de nombreux ajout au langage et dans la bibliothèque standard. Cet article fait le tour de ces nouvelles fonctionnalités, selon la version de gcc.
    Cet article sera mis à jour régulièrement pour présenter les techniques avancées.
    Création : 3 août 2012  · Mise à jour :  mars 2013  · 54 commentaires Donner une note à l'article (5)
     
  • PDF on-line ZIP 
    fr
    L'école d'art numérique ISART DIGITAL a accueilli quatre présentations ayant pour principal thème la création d'applications pour Windows. Cet événement était centré autour du thème des applications 3D.
    Création : 2 décembre 2013  · Commentez

Aucun commentaire:

Enregistrer un commentaire