C++ prend officiellement en charge une nouvelle plateforme : ce qui a changé

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

C++ élargit ses horizons : prise en charge officielle d'une nouvelle plateforme



La communauté des développeurs C++ a reçu une mise à jour importante : le comité international de normalisation ISO C++ et les principaux fournisseurs de compilateurs (GCC, Clang, MSVC) ont annoncé la prise en charge officielle complète d'une nouvelle plateforme matérielle et logicielle. Il s'agit de la plateforme RISC-V — une architecture de jeu d'instructions (ISA) ouverte qui gagne rapidement en popularité dans les systèmes embarqués, les appareils IoT et même les solutions serveur.



Auparavant, la prise en charge de RISC-V en C++ existait en mode expérimental, mais elle est désormais incluse dans les versions principales des compilateurs et officiellement documentée dans la norme C++23. Cela signifie que les développeurs peuvent écrire du code C++ pour RISC-V sans utiliser de correctifs tiers ni de versions bêta des outils.



Qu'est-ce que cela signifie pour les développeurs ?



  • Bibliothèque standard complète : Désormais, tous les conteneurs, algorithmes et flux d'entrée-sortie de la STL fonctionnent nativement sur RISC-V, sans émulation.
  • Optimisation pour l'architecture : Les compilateurs ont reçu de nouveaux drapeaux d'optimisation tenant compte des spécificités du pipeline RISC-V (par exemple, la prise en charge des extensions d'instructions vectorielles).
  • Sécurité mémoire : La prise en charge des mécanismes de protection tels que CFI (Control Flow Integrity) et Shadow Stacks pour RISC-V a été implémentée.
  • Écosystème prêt : Intégration avec les systèmes de build populaires (CMake, Meson) et les gestionnaires de paquets (vcpkg, Conan) pour RISC-V.


Exemples pratiques d'utilisation



Cette nouvelle prise en charge ouvre la voie à des projets qui nécessitaient auparavant un portage complexe. Voici quelques scénarios :



  • Développement de systèmes embarqués basés sur des microcontrôleurs RISC-V (par exemple, SiFive ou ESP32-C3) en utilisant C++20/23.
  • Création de dispositifs edge haute performance avec apprentissage automatique en C++ sous RISC-V.
  • Portage d'applications multiplateformes existantes (jeux, éditeurs graphiques) vers des appareils avec RISC-V.


Détails techniques pour les développeurs



Pour commencer à travailler avec C++ sur RISC-V, il suffit d'installer une version à jour du compilateur :



  • GCC 13+ — a ajouté la prise en charge complète de la norme C++23 pour RISC-V (auparavant, seul C++17 était disponible).
  • Clang 16+ — a inclus la prise en charge de RISC-V dans libc++ et a amélioré la génération de code pour les extensions vectorielles.
  • MSVC — ne prend actuellement en charge RISC-V que par cross-compilation (à partir de Visual Studio 2022 17.8).


Exemple de base de compilation d'un programme :



// hello.cpp#include <iostream>int main() {    std::cout << "Hello RISC-V from C++!" << std::endl;    return 0;}// Compilation : riscv64-unknown-linux-gnu-g++ -std=c++23 hello.cpp -o hello


Impact sur l'écosystème C++



La prise en charge de RISC-V n'est pas simplement un nouveau backend de compilateur. C'est un pas vers la diversification des plateformes matérielles, la réduction de la dépendance vis-à-vis de x86 et ARM. Pour les projets éducatifs, comme PythonLib, cela signifie qu'il est désormais possible d'étudier le C++ dans le contexte des architectures open-source modernes. Cela est particulièrement pertinent pour les cours de programmation système, de robotique et de développement de pilotes.

Recommended Libraries