Namespaces
Variants

std::filesystem::path:: operator=

From cppreference.net
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
(публичная функция-член)