std::filesystem::path::operator=
From cppreference.com
< 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 から構築された新しいパス値で置き換えます。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 が有効であり、エンコーディング文字型(char、char8_t、(since C++20)char16_t、char32_t、または wchar_t)を指す場合。
目次 |
[編集] Parameters
| p | - | 代入するパス |
| source | - | null終端された文字/ワイド文字文字列へのポインタ、またはnull終端された文字/ワイド文字シーケンスを指す入力イテレータ。文字型は char、char8_t、(since C++20)char16_t、char32_t、wchar_t のいずれかである必要があります。 |
[編集] Return value
*this
[編集] Example
このコードを実行
#include <filesystem> namespace fs = std::filesystem; int main() { fs::path p = "C:/users/abcdef/AppData/Local"; p = p / "Temp"; // move assignment const wchar_t* wstr = L"D:/猫.txt"; p = wstr; // assignment from a source }
[編集] Defect reports
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 3244 | C++17 | Sourceがpathではないという制約が欠落していました |
追加された |
[編集] See also
| 内容を代入する (public member function) | |
path を構築します。(public member function) |