[{"data":1,"prerenderedAt":45},["ShallowReactive",2],{"course-c-programmation-et-c-moderne":3,"highlight-cpp-template \u003Cstd::integ":44},{"id":4,"name":5,"slug":6,"location":7,"targetAudienceFormatMarkdown":8,"prerequisitesFormatMarkdown":9,"objectivesFormatMarkdown":10,"descriptionFormatMarkdown":11,"teachingMethodsFormatMarkdown":12,"teachingResourcesFormatMarkdown":13,"evaluationMethodsFormatMarkdown":14,"accessibilityFormatMarkdown":15,"accessMethodsFormatMarkdown":16,"minimumParticipants":7,"maximumParticipants":7,"duration":17,"reference":18,"trainerType":7,"updated_at":19,"created_at":20,"price":21,"organizationMode":22,"theme":25,"code":29,"tags":34,"metadata":35},"/api/courses/0b5bdc5d-b298-11f1-a993-d8ca06000363","C++ : programmation et C++ moderne","c-programmation-et-c-moderne",null,"Développeurs devant écrire ou maintenir du code C++, ingénieurs logiciel embarqué ou calcul.","Connaissance de l'algorithmique et d'un langage de programmation. Une base en C est un plus.","Développer en C++ en maîtrisant objets, mémoire et bibliothèque standard, et exploiter les apports de C++17 à C++23.","--day1--\n\n## Bases du langage\n\n-   Compilation et chaîne de production ; types, références, pointeurs ; portée et durée de vie ; premiers programmes.\n\n--break--\n\n## Fonctions et mémoire\n\n-   Passage par valeur et par référence ; allocation dynamique ; fuites et erreurs classiques ; principe RAII.\n\n--day2--\n\n## Classes et objets\n\n-   Classes, constructeurs, destructeur ; règle des trois et des cinq ; surcharge d'opérateurs ; const-correctness.\n\n--break--\n\n## Héritage et polymorphisme\n\n-   Héritage, fonctions virtuelles, destructeur virtuel ; classes abstraites ; héritage multiple et ses risques.\n\n--day3--\n\n## Bibliothèque standard\n\n-   Conteneurs (vector, map, set) ; itérateurs ; algorithmes standard ; chaînes de caractères ; entrées-sorties.\n\n--break--\n\n## Templates\n\n-   Fonctions et classes génériques ; spécialisation ; templates variadiques ; introduction aux concepts (C++20).\n\n--day4--\n\n## Mémoire et ressources modernes\n\n-   Pointeurs intelligents (unique_ptr, shared_ptr) ; sémantique de déplacement ; move et forward ; élimination des allocations manuelles.\n\n--break--\n\n## C++17 à C++23\n\n-   optional, variant, string_view ; structured bindings ; filesystem ; ranges et views ; format ; expected.\n\n--day5--\n\n## Concurrence\n\n-   Threads et gestion des accès concurrents ; mutex et verrous ; futures et promesses ; pièges de la programmation concurrente.\n\n--break--\n\n## Qualité et projet\n\n-   Tests unitaires ; outils d'analyse (sanitizers, analyse statique) ; build avec CMake ; réalisation d'un projet fil rouge.","Présentiel, distanciel, hybride","Les supports pédagogiques sont remis aux stagiaires sous format numérique et/ou papier selon les modalités de la formation.\n\nIls comprennent des supports de cours, des présentations, des fiches pratiques, des études de cas, des exercices applicatifs ainsi que des QCM d’entraînement selon la formation. (adapté au choix du formateur)\n\nLes formations s’appuient sur des moyens techniques adaptés : ordinateurs, logiciels professionnels, connexion internet, écran ou vidéoprojecteur, ainsi que des outils collaboratifs et de visioconférence pour les formations à distance.\n\nL’ensemble des supports pédagogiques est accessible pendant et après la formation afin de favoriser l’appropriation et la mise en pratique des compétences acquises.","En amont de la formation, un recueil des besoins permet de récolter des informations sur le stagiaire et ses attentes. L’évaluation se fait en cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation et/ou un examen.\n\nUn suivi de qualité est effectué grâce à nos sessions en groupe restreint (entre 2 et 9 participants maximum). Le stagiaire émargera par demi-journée et recevra une attestation de formation.","Nous informons l’ensemble de nos clients et stagiaires que nous sommes dans la capacité d’adapter les sessions selon les handicaps et les situations spécifiques. Nous nous engageons à répondre à toutes vos demandes sous un délai de 48h ouvré.","Si l’une de nos formations vous intéresse, contactez-nous au +33 4 93 65 34 24 ou à l’adresse mail contact@m2g-intellect.fr. Selon votre besoin et vos attentes, nous organiserons un échange téléphonique avec le formateur pressenti afin d’adapter la formation et ses modules, puis nous vous adresserons un devis.\n\nLes dates de la formation seront à convenir sous 30 jours maximum.","35.00","L1-DEV-10","2026-09-18T09:45:10+00:00","2026-09-17T15:02:32+00:00","2760.00",{"id":23,"name":24},"/api/organization_mode_types/6","HYBRID",{"id":26,"name":27,"slug":28},"/api/themes/0ac148c3-b298-11f1-a993-d8ca06000363","Développement logiciel informatique et web","developpement-logiciel-informatique-et-web",{"id":30,"label":31,"domain":32},"/api/training_specialities/163","326 - Informatique, traitement de l’information, réseaux de transmission des données",{"label":33},"32 - Communication et information",[],{"desc-accroche":36,"Description":37,"icon-color":38,"icon-name":39,"code-langage":40,"code-snippet":41,"courte-description":42,"titre-accroche":43},"Maîtrisez pointeurs intelligents, idiome RAII, templates génériques, bibliothèque standard, puis concepts, structured bindings et ranges apportés par C++17, C++20 et C++23.","Cette formation complète conduit du C++ classique au C++ contemporain, sans sacrifier la compréhension des mécanismes bas niveau qui font sa spécificité. Elle couvre la gestion mémoire manuelle et son remplacement progressif par les pointeurs intelligents et l'idiome RAII, la programmation orientée objet (héritage, polymorphisme, classes abstraites), les templates et la généricité, ainsi que les conteneurs et algorithmes de la bibliothèque standard. Une large partie est consacrée aux apports successifs de C++17, C++20 et C++23 : structured bindings, concepts pour contraindre les templates, ranges pour composer des traitements sur des collections, et améliorations de la gestion des erreurs, qui permettent d'écrire un code plus sûr sans perdre en performance. Elle s'adresse aux développeurs devant écrire ou maintenir du code C++, ainsi qu'aux ingénieurs logiciel embarqué ou calcul.","#00599C","mdi:language-cpp","cpp","template \u003Cstd::integral T>\nclass Buffer {\n    std::vector\u003CT> donnees_;\npublic:\n    explicit Buffer(std::size_t taille) : donnees_(taille) {}\n\n    auto vue() const {\n        return donnees_\n            | std::views::filter([](T v) { return v > 0; })\n            | std::views::transform([](T v) { return v * 2; });\n    }\n};","Formation complète au C++ contemporain : gestion mémoire, programmation objet, bibliothèque standard et apports de C++17 à C++23 pour un code plus sûr.","Reprenez le contrôle du C++ moderne : gestion mémoire, bibliothèque standard et apports de C++17 à C++23 pour un code sûr et performant.","\u003Cpre class=\"hljs\">\u003Ccode class=\"language-cpp\">\u003Cspan class=\"hljs-keyword\">template\u003C/span> &lt;std::integral T&gt;\n\u003Cspan class=\"hljs-keyword\">class\u003C/span> \u003Cspan class=\"hljs-title class_\">Buffer\u003C/span> {\n    std::vector&lt;T&gt; donnees_;\n\u003Cspan class=\"hljs-keyword\">public\u003C/span>:\n    \u003Cspan class=\"hljs-function\">\u003Cspan class=\"hljs-keyword\">explicit\u003C/span> \u003Cspan class=\"hljs-title\">Buffer\u003C/span>\u003Cspan class=\"hljs-params\">(std::\u003Cspan class=\"hljs-type\">size_t\u003C/span> taille)\u003C/span> : donnees_(taille) {\u003C/span>}\n\n    \u003Cspan class=\"hljs-function\">\u003Cspan class=\"hljs-keyword\">auto\u003C/span> \u003Cspan class=\"hljs-title\">vue\u003C/span>\u003Cspan class=\"hljs-params\">()\u003C/span> \u003Cspan class=\"hljs-type\">const\u003C/span> \u003C/span>{\n        \u003Cspan class=\"hljs-keyword\">return\u003C/span> donnees_\n            | std::views::\u003Cspan class=\"hljs-built_in\">filter\u003C/span>([](T v) { \u003Cspan class=\"hljs-keyword\">return\u003C/span> v &gt; \u003Cspan class=\"hljs-number\">0\u003C/span>; })\n            | std::views::\u003Cspan class=\"hljs-built_in\">transform\u003C/span>([](T v) { \u003Cspan class=\"hljs-keyword\">return\u003C/span> v * \u003Cspan class=\"hljs-number\">2\u003C/span>; });\n    }\n};\u003C/code>\u003C/pre>",1789717714545]