Skip to content

Latest commit

 

History

History
94 lines (71 loc) · 2.23 KB

op_ostream.md

File metadata and controls

94 lines (71 loc) · 2.23 KB

operator<<

  • filesystem[meta header]
  • std::filesystem[meta namespace]
  • path[meta class]
  • function template[meta id-type]
  • cpp17[meta cpp]
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>());
  • quoted[link /reference/iomanip/quoted.md]
  • p.string[link string.md]

備考

  • この関数は、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

処理系

参照