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::ostringstreamstd::to_stringを使ったり、フォーマットライブラリを利用していました。しかし、C++20で導入されたstd::formatは、Pythonのstr.format()に似た使い勝手を提供し、コードの簡潔さを改善します。

代替として、Boost.Formatライブラリやprintfスタイルのフォーマット関数(sprintfなど)がありますが、std::formatは型安全で利便性が高く、現代的なC++コードに適しています。

文字列補間の実装は、渡された変数や式を文字列に変換し、指定された形式で他の文字列と結合することにより行われます。std::formatでは書式指定子に基づいており、様々なカスタマイズが可能となっています。

See Also / 関連情報