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
オブジェクトにおいては、システムのパスフォーマットかつ、ダブルクォーテーション囲みでパス文字列が出力される。
戻り値
以下と等価:
備考
- この関数は、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
処理系
- Clang:
- GCC: 8.1 ✅
- Visual C++: 2017 Update 7 ✅