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) 用一个路径名替换 *this 的内容,其本地格式和通用格式表示都等于 p 的表示。
2) 用一个路径名替换 *this 的内容,其本地格式和通用格式表示都等于 p 的表示,可能使用移动语义:p 处于一个有效但未指定的 state。
3) 用一个新路径值替换 *this 的内容,该路径值从检测到的格式 source 构建,source 处于有效但未指定的 state。等价于 assign(std::move(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"; // move assignment const wchar_t* wstr = L"D:/猫.txt"; p = wstr; // assignment from a source }
[编辑] 缺陷报告
以下更改行为的缺陷报告已追溯应用于以前发布的 C++ 标准。
DR | 应用于 | 已发布的行为 | 正确的行为 |
---|---|---|---|
LWG 3244 | C++17 | 缺少 Source 不能是 path 的约束 |
已添加 |
[编辑] 参见
分配内容 (公共成员函数) | |
构造一个 path (公共成员函数) |