30 Input/output library [input.output]

30.10 File systems [filesystems]

30.10.34 Filesystem operation functions [fs.op.funcs]

30.10.34.32 Rename [fs.op.rename]

void rename(const path& old_p, const path& new_p); void rename(const path& old_p, const path& new_p, error_code& ec) noexcept;

Effects: Переименовывает old_­p в new_­p, как если бы POSIX rename().

[Note:

  • Если old_­p и new_­p разрешаются в один и тот же существующий файл, никаких действий не предпринимается.

  • В противном случае переименование может включать следующие эффекты:

    • если new_­p разрешается в существующий файл, не new_­p являющийся каталогом, удаляется; иначе,

    • если new_­p разрешается в существующий каталог, new_­p удаляется, если он пуст в POSIX-совместимых операционных системах, но может быть ошибкой в ​​других операционных системах.

Сама символическая ссылка переименовывается, а не файл, в который она разрешается. ]end note

Throws: Как указано в [fs.err.report].