Указатель нормализации пути доступен без обращения к диску
09.02.2026В верхний уровень модуля путей вынесены методы нормализации пути. Они работают без обращения к диску и не разыменовывают символические ссылки.
Два разных смысла слова «нормализовать»
Есть нормализация как преобразование текста: убрать повторяющиеся разделители, развернуть вложенные элементы, убрать конечный разделитель. Это чистая работа со строкой, и результат гарантированно существует.
Есть нормализация как приведение к настоящему пути: спросить у системы, как этот путь выглядит на самом деле. Здесь результат зависит от того, что лежит на диске, и он может не существовать.
Раньше эти два смысла смешивались в одном наборе методов. Теперь тот, что работает с текстом, вынесен отдельно и назван явно.
Зачем разделять
Первый вид нужен постоянно: сравнить два пути, записанные по-разному, проверить, что один содержит другой, сформировать путь для сообщения об ошибке. Для этих задач обращение к диску не нужно, а оно стоит системных вызовов.
Оригинал
introduce path normalize methods at top of std::path
Упоминаний: 1 · Просмотров: 2