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].