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/cpp/filesystem/path/operator%3D