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++ 标准。
缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
LWG 3244 | C++17 | 缺失 Source 不能为 path 的制约
|
已添加 |
参阅
赋值内容 (公开成员函数) | |
构造一个 path (公开成员函数) |