std::filesystem::path::operator=
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, (с 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 (публичный член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/filesystem/path/operator%3D