Указатель нормализации пути доступен без обращения к диску

09.02.2026

В верхний уровень модуля путей вынесены методы нормализации пути. Они работают без обращения к диску и не разыменовывают символические ссылки.

Два разных смысла слова «нормализовать»

Есть нормализация как преобразование текста: убрать повторяющиеся разделители, развернуть вложенные элементы, убрать конечный разделитель. Это чистая работа со строкой, и результат гарантированно существует.

Есть нормализация как приведение к настоящему пути: спросить у системы, как этот путь выглядит на самом деле. Здесь результат зависит от того, что лежит на диске, и он может не существовать.

Раньше эти два смысла смешивались в одном наборе методов. Теперь тот, что работает с текстом, вынесен отдельно и назван явно.

Зачем разделять

Первый вид нужен постоянно: сравнить два пути, записанные по-разному, проверить, что один содержит другой, сформировать путь для сообщения об ошибке. Для этих задач обращение к диску не нужно, а оно стоит системных вызовов.

Оригинал

introduce path normalize methods at top of std::path

Упоминаний: 1 · Просмотров: 2