std::filesystem::path::operator=
来自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) 以原生和通用格式均与
p 相同的路径名替换 *this 的内容。2) 以原生和通用格式均与
p 相同的路径名替换 *this 的内容,可能使用移动语义: p 留在合法但未指定的状态。3) 以从受检测格式的
source 构造的新 path 值替换 *this 的内容。 source 留合法但未指定的状态。等价于 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 (公开成员函数) |