C++:
Interpolacja łańcuchów znaków
How to (Jak to zrobić):
Od C++20 mamy dostępne formatowanie stylu {fmt}
. Sprawdź:
#include <iostream>
#include <format>
int main() {
std::string name = "Marek";
int age = 30;
std::string greeting = std::format("Cześć, {}! Masz {} lat.", name, age);
std::cout << greeting << std::endl;
return 0;
}
Wynik:
Cześć, Marek! Masz 30 lat.
Deep Dive (Dogłębna analiza)
Interpolacja stringów znana jest z wielu języków, takich jak Python czy JavaScript. W C++ analogiczną funkcjonalność powszechnie osiągano przez printf
lub strumienie (np. std::ostringstream
). Formatowanie stylu {fmt}
(od C++20) jest inspirowane biblioteką fmt i Pythonem, oferuje typowane bezpieczeństwo i jest wygodniejsze w użyciu niż starsze metody.
Alternatywy:
sprintf
/snprintf
: starsze funkcje C-style, które mogą prowadzić do błędów i wycieków pamięci.- Strumienie I/O (
std::stringstream
): szerokie możliwości ale skomplikowane i często mniej wydajne. - Biblioteka
fmt
przed C++20: zewnętrzna biblioteka, która wprowadziła wygodne formatowanie.
Implementacja detale std::format
to bezpieczna i elastyczna opcja formatowania stringów, która pozwala na precyzyjne sterowanie formatem wyjściowym, włączając w to szerokość pola, precyzję i wiele innych.
See Also (Zobacz też)
- Oficjalna dokumentacja
std::format
: https://en.cppreference.com/w/cpp/utility/format/format - Historia i wprowadzenie do biblioteki
{fmt}
: https://fmt.dev/latest/index.html - Strona projektu C++20: https://isocpp.org/std/status