Spec-Zone.ru › C++

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 отсутствовало добавлено

См. также

assign
присваивание содержимого
(публичный член-функция)
(конструктор)
создание объекта path
(публичный член-функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/filesystem/path/operator%3D

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API