Aller au contenu
Bienvenue sur la nouvelle documentation de CppUtils !

Bienvenue sur CppUtils ! Ce guide vous accompagne pas à pas pour configurer votre environnement, intégrer la bibliothèque dans vos projets via XMake et compiler un premier exemple avec CppUtils.


CppUtils est développée en C++26 et est entièrement modulaire (import CppUtils...;, import std;).

  • Compilateur C++ : Un compilateur compatible C++26 avec support des modules standard (import std;) - Clang / LLVM est le compilateur recommandé et testé en intégration continue.
  • Système de build : XMake (gestion native des modules C++20 et des packages - un grand merci à Arthapz qui a implémenté le support des modules dans XMake).

Vous pouvez intégrer directement CppUtils dans votre projet via le dépôt personnel XMake (MorganCaron/xmake-repo), ou compiler la bibliothèque depuis ses sources.

  1. Ajouter le dépôt XMake à votre xmake.lua

    Ajoutez le dépôt XMake CppUtils à la configuration de votre projet et déclarez la dépendance :

    xmake.lua
    add_repositories("xmake-repo https://github.com/MorganCaron/xmake-repo.git")
    add_requires("CppUtils 0.1.*") -- version figée recommandée (ou "CppUtils" pour la dernière version)
  2. Intégrer CppUtils à votre projet

    Configurez votre exécutable en C++26 et ajoutez la dépendance CppUtils :

    xmake.lua
    target("MonApplication")
    set_kind("binary")
    set_languages("c++26")
    add_files("src/*.cpp")
    add_packages("CppUtils", { public = true })
  3. Configurer et compiler

    Configurez avec la toolchain LLVM (ou MSVC sous Windows) selon vos besoins de runtime :

    Fenêtre de terminal
    # Runtime partagé (recommandé en développement : link rapide et binaires légers)
    xmake f --toolchain=llvm --runtimes="c++_shared"
    xmake
    # Ou runtime statique (recommandé en déploiement : binaire autonome)
    xmake f --toolchain=llvm --runtimes="c++_static"
    xmake
    • c++_shared (développement) : accélère l’édition de liens incrémentale et produit des exécutables légers en utilisant la libc++ installée sur la machine hôte.
    • c++_static (déploiement) : produit un binaire autonome sans dépendance vers la libc++ de la machine cible.

Pour vérifier que votre projet est correctement configuré et que CppUtils est bien importé, compilez et exécutez l’un de ces trois exemples :

Une table associative bidirectionnelle O(1) :

main.cpp
import CppUtils;
int main()
{
using namespace std::literals;
// Table bidirectionnelle associant codes HTTP et libellés constants
const auto httpCodes = CppUtils::Container::BidirectionalMap<int, std::string_view>{
std::pair{200, "OK"sv},
std::pair{404, "Not Found"sv},
std::pair{500, "Internal Server Error"sv}
};
std::println("Code 200 -> {}", httpCodes.left(200));
std::println("'Not Found' -> {}", httpCodes.right("Not Found"sv));
return 0;
}
Output
Code 200 -> OK
'Not Found' -> 404