最終更新日時(UTC):
が更新

履歴 編集

function template
<filesystem>

std::filesystem::path::operator<<(C++17)

namespace std::filesystem {
  template <class CharT, class Traits>
  std::basic_ostream<CharT, Traits>&
    operator<<(std::basic_ostream<CharT, Traits>& os, const path& p); // (1) C++17
}

template <class CharT, class Traits>
friend std::basic_ostream<CharT, Traits>&
  operator<<(std::basic_ostream<CharT, Traits>& os, const path& p);   // (2) C++20

概要

ストリームに出力する。

pathオブジェクトにおいては、システムのパスフォーマットかつ、ダブルクォーテーション囲みでパス文字列が出力される。

戻り値

以下と等価:

return os << quoted(p.string<CharT, Traits>());

備考

  • この関数は、C++20で非メンバ関数から、friendメンバ関数に変更された。そのため、std::filesystem::operator<<という完全名の指定では呼び出せず、ADLによって呼び出すことになる

POSIXベースシステムでの例

#include <iostream>
#include <filesystem>

namespace fs = std::filesystem;

int main()
{
  fs::path p = "a/b/c";
  std::cout << p << std::endl;
}

出力

"a/b/c"

Windowsでの例

#include <iostream>
#include <filesystem>

namespace fs = std::filesystem;

int main()
{
  fs::path p = "a/b/c";
  std::cout << p << std::endl;
}

出力

"a/b/c"

バージョン

言語

  • C++17

処理系

参照