std::filesystem::path:: operator=
From cppreference.net
<
cpp
|
filesystem
|
path
|
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
が同じ型ではなく、かつ:
-
Sourceは std::basic_string または std::basic_string_view の特殊化であるか、または - std:: iterator_traits < std:: decay_t < Source >> :: value_type が有効であり、const修飾可能性のあるエンコーディング文字型( char 、 char8_t 、 (C++20以降) char16_t 、 char32_t 、または wchar_t )を示す場合。
目次 |
パラメータ
| 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
を構築する
(公開メンバ関数) |