Interpolation de chaînes de caractères

C++:
Interpolation de chaînes de caractères

Comment faire :

#include <iostream>
#include <string>
#include <fmt/core.h> // C++20 <format> library

int main() {
    int age = 25;
    std::string prenom = "Alex";

    // Utilisation de fmt::format pour l'interpolation
    std::string message = fmt::format("Bonjour, je suis {} et j'ai {} ans.", prenom, age);
    std::cout << message << std::endl; // Affiche: Bonjour, je suis Alex et j'ai 25 ans.

    return 0;
}

Exploration approfondie

Historiquement, en C++, l’interpolation était souvent réalisée par des flux d’entrée/sortie (iostream) ou des opérations de concaténation manuelles. Avec l’introduction de la bibliothèque <format> dans C++20, inspirée de la bibliothèque populaire fmt, les développeurs ont désormais accès à un mécanisme d’interpolation de chaîne élégant et performant qui évite les conversions de types inutiles et les erreurs courantes que l’on retrouve avec les méthodes plus anciennes.

Alternativement, avant C++20, on utilisait sprintf ou la surcharge des opérateurs de flux, mais ces méthodes pouvaient entraîner des problèmes de sécurité et de performance. L’interpolation avec fmt::format offre une solution type-safe, ce qui signifie moins d’erreurs de types de données lors de l’exécution.

Concernant l’implémentation, fmt::format utilise des jetons d’interpolation {} dans lesquels les variables et expressions sont insérées. Cela se fait en analysant la chaîne formatée et en remplaçant ces jetons par la représentation chaîne des arguments correspondants.

Voir également