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)
Заменяет содержимое
*
this
новым значением пути, сконструированным из
source
в автоматически определяемом формате, как если бы использовалась перегрузка
(4)
конструктора
path
. Эквивалентно
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 , (since C++20) char16_t , char32_t , или wchar_t ).
Содержание |
Параметры
| p | - | путь для присваивания |
| source | - | a std::basic_string , std::basic_string_view , указатель на null-терминированную строку символов/широких символов или входной итератор, указывающий на null-терминированную последовательность символов/широких символов. Тип символа должен быть одним из char , char8_t , (since 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++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 3244 | C++17 |
constraint that
Source
cannot be
path
was missing
|
added |
Смотрите также
|
присваивает содержимое
(публичная функция-член) |
|
создает
path
(публичная функция-член) |