Namespaces
Variants

std::filesystem::path:: operator=

From cppreference.net
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 构造的新路径值,该源对象将处于有效但未指定的状态。等价于 assign ( std :: move ( source ) )
4) * this 的内容替换为由检测格式的 source 构造的新路径值,操作方式类似于 path 构造函数 的重载 (4) 。等价于 assign ( source )

(4) 仅当 Source path 类型不同,且满足以下任一条件时,才参与重载决议:

目录

参数

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 对象
(公开成员函数)