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 构造函数的重载 (4) 构造的新 path 值替换 *this 的内容。等价于 assign(source)

(4) 仅若 Sourcepath 不是同一类型,而且:

才参与重载决议

参数

p - 要赋值的路径
source - std::basic_stringstd::basic_string_view 、指向空终止字符/宽字符串的指针,或指向空终止字符/宽字符序列的输入迭代器。字符类型必须是 char char8_t (C++20 起)char16_tchar32_twchar_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
(公开成员函数)