最終更新日時(UTC): 2026年05月29日 03時47分38秒
Akira Takahashi が更新

履歴 編集

function
<filesystem>

# std::filesystem::path::display_string(C++26)

    std::string display_string() const;

## 概要

表示に適したリテラルエンコーディングで、パス文字列を取得する。

`std::format()`や`std::print()`で出力するのに適した文字列を返す。

## 戻り値

以下と等価である：

    return std::format("{}", *this);

## 備考

- 戻り値の文字列は、フォーマット (`std::format()`) や出力 (`std::print()`) で使用するのに適している
- リテラルエンコーディングがUTF-8であり、パスが妥当なUnicodeであれば (Windowsのほとんどのパスがそうである)、文字コード変換は無損失となる

## 例

    #include <print>
    #include <filesystem>

    namespace fs = std::filesystem;

    int main()
    {
      fs::path p = "/usr/bin/clang";

      std::string s = p.display_string();
      std::print("{}\n", s);
    }

### 出力

    /usr/bin/clang

## バージョン

### 言語

- C++26

### 処理系

- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌

## 関連項目

- `string()` (システムのマルチバイト文字コードで取得する。C++26で非推奨)
- `system_encoded_string()` (システム依存エンコーディングで取得する)
- `generic_display_string()` (環境非依存フォーマットで取得する)
- `formatter` (`std::format()`での書式)

## 参照

- P2319R5 Prevent path presentation problems
  - 表示用のリテラルエンコーディングで文字列を取得するこの関数がC++26で追加された