Een string interpoleren

C++:
Een string interpoleren

Hoe:

C++ heeft geen ingebouwde stringinterpolatie zoals sommige andere talen. Je gebruikt vaak std::ostringstream, std::format (vanaf C++20), of printf-stijl formattering.

Met std::ostringstream:

#include <sstream>
#include <iostream>

int main() {
    std::ostringstream bericht;
    int leeftijd = 30;
    bericht << "Hallo, ik ben " << leeftijd << " jaar oud.";
    std::cout << bericht.str() << std::endl; // "Hallo, ik ben 30 jaar oud."
}

Met std::format (C++20):

#include <format>
#include <iostream>

int main() {
    int leeftijd = 30;
    std::string bericht = std::format("Hallo, ik ben {} jaar oud.", leeftijd);
    std::cout << bericht << std::endl; // "Hallo, ik ben 30 jaar oud."
}

Diepgaand Onderzoek

Voor C++20, concateneerden we strings met streams of sprintf, wat omslachtig was. Met de komst van std::format, halen we eindelijk de moderne talen zoals Python in met hun f-strings.

std::ostringstream: Dit biedt ons een stream-achtige manier om strings op te bouwen. Het is veelzijdig maar niet het meest bondig. Het is al jaren de go-to vanwege zijn veiligheid en gebruiksgemak.

std::format: Geïntroduceerd in C++20, biedt het Python-achtige formattering. Het is leesbaarder en efficiënter dan streamconcatenatie maar vereist nieuwere compilers.

Alternatieven bestaan zoals Boost.Format of het gebruik van stringconcatenatie, maar deze zijn niet zo schoon of kunnen overhead met zich meebrengen.

Stringinterpolatie is versuikering, maar het is zoet. Het vereenvoudigt de code en vermijdt de prestatiehit van herhaaldelijk aan strings toevoegen.

Zie Ook