Подскажите аналог f-строк в С++

Мне нужно, чтобы переменные, которые находятся в фигурных скобках, принимали заданные значения. Код такого вида:

QString compression_level = "8";
QString sample_fmt = "s16";
QString sampling_rate = "48000";
QString preset = "-compression_level {compression_level} -sample_fmt {sample_fmt} -sample_rate={sampling_rate}";

В Python для этого используются так называемые f-строки:

f"-compression_level {compression_level} -sample_fmt {sample_fmt} -sample_rate={sampling_rate}".

Имеется ли в С++ что-то подобное?


Ответы (1 шт):

Автор решения: dIm0n

В C++20 добавили библиотеку fmt в стандартную библиотеку. Пока что она отсутствует в популярных реализациях, поэтому вот пример, в котором в будущем надо заменить #include <fmt/core.h> на #include <format>, а fmt:: – на std:::

#include <iostream>
#include <fmt/core.h>

int main() {
    std::cout << fmt::format("{}, {}\n", "hello", "world");
}

Пока можно довольствоваться std::printf:

#include <cstdio>

int main() {
    std::printf("%d\n%zu\n", 42, sizeof(42));
}
→ Ссылка