Namespaces
Variants

std::filesystem::path:: operator=

From cppreference.net
path & operator = ( const path & p ) ;
(1) (C++17以降)
path & operator = ( path && p ) noexcept ;
(2) (C++17以降)
path & operator = ( string_type && source ) ;
(3) (C++17以降)
template < class Source >
path & operator = ( const Source & source ) ;
(4) (C++17以降)
1) コンテンツを * this のネイティブ形式とジェネリック形式の両方の表現が p と等しいパス名で置き換えます。
2) * this の内容を、ネイティブ形式とジェネリック形式の両方の表現が p と等しいパス名で置き換えます(ムーブセマンティクスを使用する可能性があります): p は有効だが未規定の状態になります。
3) 検出されたフォーマットの * this の内容を、有効だが未規定の状態に残される source から構築された新しいパス値で置き換えます。 assign ( std :: move ( source ) ) と等価です。
4) 検出されたフォーマットの * this の内容を、 source から pathコンストラクタ のオーバーロード (4) によって構築された新しいパス値で置き換えます。 assign ( source ) と等価です。

(4) 以下のいずれかの条件を満たす場合にのみ、オーバーロード解決に参加します: Source path が同じ型ではなく、かつ:

目次

パラメータ

p - 割り当てるパス
source - std::basic_string std::basic_string_view 、ヌル終端文字列/ワイド文字列へのポインタ、またはヌル終端文字/ワイド文字シーケンスを指す入力イテレータ。文字型は char char8_t (C++20以降) char16_t char32_t wchar_t のいずれかでなければならない

戻り値

* this

#include <filesystem>
namespace fs = std::filesystem;
int main()
{
    fs::path p = "C:/users/abcdef/AppData/Local";
    p = p / "Temp"; // ムーブ代入
    const wchar_t* wstr = L"D:/猫.txt";
    p = wstr; // ソースからの代入
}

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 3244 C++17 Source path であってはならないという制約が欠落していた 追加された

関連項目

内容を割り当てる
(公開メンバ関数)
path を構築する
(公開メンバ関数)