std::filesystem::path:: operator=
From cppreference.net
<
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
将处于有效但未指定的状态。
3)
将
*
this
的内容替换为由检测格式的
source
构造的新路径值,该源对象将处于有效但未指定的状态。等价于
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"; // 移动赋值 const wchar_t* wstr = L"D:/猫.txt"; p = wstr; // 从源进行赋值 }
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
| 缺陷报告 | 适用范围 | 发布时行为 | 正确行为 |
|---|---|---|---|
| LWG 3244 | C++17 |
缺失
Source
不能是
path
的约束条件
|
已添加 |
参见
|
分配内容
(公开成员函数) |
|
构造
path
对象
(公开成员函数) |