C++:
文字列の補間
How to / 方法
#include <iostream>
#include <string>
int main() {
int age = 25;
std::string name = "Taro";
// C++20から導入されたstd::formatを使って文字列を補間する
std::string greeting = std::format("Hello, {}! You are {} years old.", name, age);
std::cout << greeting << std::endl;
return 0;
}
Sample output:
Hello, Taro! You are 25 years old.
Deep Dive / 深掘り
C++には長い間、文字列補間の組み込み機能がありませんでした。従来は文字列ストリームのstd::ostringstream
やstd::to_string
を使ったり、フォーマットライブラリを利用していました。しかし、C++20で導入されたstd::format
は、Pythonのstr.format()
に似た使い勝手を提供し、コードの簡潔さを改善します。
代替として、Boost.Formatライブラリやprintf
スタイルのフォーマット関数(sprintf
など)がありますが、std::format
は型安全で利便性が高く、現代的なC++コードに適しています。
文字列補間の実装は、渡された変数や式を文字列に変換し、指定された形式で他の文字列と結合することにより行われます。std::format
では書式指定子に基づいており、様々なカスタマイズが可能となっています。