Namespaces
Variants

std::experimental::filesystem::path:: path

From cppreference.net
path ( ) ;
(1) (filesystem TS)
path ( const path & p ) ;
(2) (filesystem TS)
path ( path && p ) ;
(3) (filesystem TS)
template < class Source >
path ( const Source & source ) ;
(4) (filesystem TS)
template < class InputIt >
path ( InputIt first, InputIt last ) ;
(5) (filesystem TS)
template < class Source >
path ( const Source & source, const std:: locale & loc ) ;
(6) (filesystem TS)
template < class InputIt >
path ( InputIt first, InputIt last, const std:: locale & loc ) ;
(7) (filesystem TS)

新しい path オブジェクトを構築します。

1) 空のパスを構築します。
2) コピーコンストラクタ。 p のコピーを構築します。
3) ムーブコンストラクタ。 p のコピーを構築し、 p は有効だが未規定の状態に残される。
4,5) 文字シーケンスからパスを構築します。文字シーケンスは source (4) によって提供され、これはヌル終端文字/ワイド文字シーケンスへのポインタまたは入力イテレータ、あるいは std::basic_string か、入力イテレータのペア [ first , last ) (5) として表現されます。4つの文字型 char char16_t char32_t wchar_t のいずれも使用可能で、ネイティブ文字セットへの変換方法は source で使用される文字型に依存します。
  • ソース文字型が char の場合、ソースのエンコーディングはネイティブナローエンコーディングであると仮定されます(したがってPOSIXシステムでは変換は行われません)。
  • ソース文字型が char16_t の場合、UTF-16からネイティブファイルシステムエンコーディングへの変換が使用されます。
  • ソース文字型が char32_t の場合、UTF-32からネイティブファイルシステムエンコーディングへの変換が使用されます。
  • ソース文字型が wchar_t の場合、入力はネイティブワイドエンコーディングであると仮定されます(したがってWindowsでは変換は行われません)。
6,7) パスを構築します。文字シーケンスは source (6) によって提供されます。これは、ヌル終端文字シーケンスへのポインタまたは入力イテレータ、あるいは std::string です。または入力イテレータのペア [ first , last ) (7) として表現されます。許可される文字型は char のみです。 loc を使用して文字エンコーディング変換を実行します。 value_type wchar_t の場合、 std:: codecvt < wchar_t , char , std:: mbstate_t > ファセットを使用してワイド文字に変換します。それ以外の場合は、まず std:: codecvt < wchar_t , char , std:: mbstate_t > ファセットを使用してワイド文字に変換し、次に std:: codecvt < wchar_t , value_type > ファセットを使用してファイルシステムのネイティブ文字型に変換します。

目次

パラメータ

p - コピーするパス
source - std::basic_string 、ヌル終端文字列へのポインタ、またはヌル終端文字シーケンスを指す文字値型を持つ入力イテレータ(オーバーロード (6) では文字型が char でなければならない)
first, last - UTF-8エンコードされた文字シーケンスを指定する LegacyInputIterator s のペア
loc - 使用するエンコーディング変換を定義するロケール
型要件
-
InputIt LegacyInputIterator の要件を満たさなければならない。
-
InputIt の値型は、オーバーロード (5) を使用するために char wchar_t char16_t char32_t の4つの文字型のいずれかでなければならない。
-
InputIt の値型は、オーバーロード (7) を使用するために char でなければならない。

例外

1,2) (なし)
3)
noexcept 指定子:
noexcept
4-7) (なし)

注記

ユニコード文字列からの移植性のあるパス名生成については、 u8path を参照してください。

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
int main()
{
    fs::path p1 = "/usr/lib/sendmail.cf"; // 移植可能な形式
    fs::path p2 = "C:\\users\\abcdef\\AppData\\Local\\Temp\\"; // ネイティブ形式
    fs::path p3 = L"D:/猫.txt"; // ワイド文字列
    std::cout << "p1 = " << p1 << '\n'
              << "p2 = " << p2 << '\n'
              << "p3 = " << p3 << '\n';
}

出力:

p1 = "/usr/lib/sendmail.cf"
p2 = "C:\users\abcdef\AppData\Local\Temp\"
p3 = "D:/猫.txt"

関連項目

UTF-8エンコードされたソースから path を作成する
(関数)