pugixml 1.16









16 июня, после почти полутора лет разработки, состоялся выпуск 1.16 pugixml — быстрой кроссплатформенной библиотеки для парсинга и обработки XML (лицензия MIT).

Библиотека предоставляет DOM-подобный интерфейс с возможностями обхода узлов документа и их изменения. Также поддерживается XPath 1.0 и полная поддержка Юникода (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) и UCS-2), с автоматическим преобразованием кодировок.

Поддерживается использование без стандартной библиотеки и исключений C++, и режим «только заголовочные файлы».

Это юбилейный выпуск — в этом году проекту исполнится 20 лет! Подробнее об истории создания и развития библиотеки можно прочитать на pugixml.org, GitHub или в первой редакции новости.

  • Изменения поведения
    • элементы c одним пустым дочерним элементом PCDATA теперь выводятся с пустыми тегами (если не используется параметр format_no_empty_element_tags).
  • Uzlabojumi
    • добавлена опция PUGIXML_CHARCONV_FLOAT для преобразования чисел с плавающей запятой, используя <charconv>; для этого требуется C++17, что делает преобразования независимыми от локали и может повысить производительность;
    • добавлены функции xml_node::ensure_child и xml_node::ensure_attribute, возвращающие дочерний элемент или атрибут с указанным именем, добавляя его, если он отсутсвовал;
    • улучшена производительность поиска узлов и атрибутов по имени;
    • загрузка документа из пустого буфера больше не приводит к выделению памяти.
  • Улучшения XPath
    • улучшена производительность запросов, в которых выполняется вычисление или сравнение значений атрибутов, например @attr > 5;
    • улучшена производительность запросов, выбирающих узлы и атрибуты по имени.
  • Kļūdu labojumi
    • исправлено переполнение стека при удалении поддеревьев с очень глубоким уровнем вложения;
    • исправлены целочисленные переполнения, которые могли приводить к сбоям при загрузке очень больших (> 1ГБ) документов на 32-разрядных платформах в режиме PUGIXML_WCHAR_MODE;
    • исправлена ошибка разыменования нулевого указателя при копировании объектов xpath_variable_set со строковыми переменными с неприсвоенными значениями.
  • Улучшения поддержки CMake
    • улучшена поддержка опции PUGIXML_BUILD_APPLE_FRAMEWORK;
    • добавлена опция CMake PUGIXML_INSTALL_SOURCE для инсталляции pugixml.cpp (полезно при работе в режиме «только заголовки»).
  • Улучшения совместимости
    • добавлены файлы проекта и пакеты NuGet для Visual Studio 2026;
    • исправлена проблема совместимости с модулями C++20 при включении файла pugixml.hpp во фрагмент глобального модуля;
    • исправлены предупреждения Clang и GCC -Wextra-semi-stmt, -Wsign-conversion и -Wuninitialized (GCC 16);
    • исправлена ошибка компиляции с Embarcadero C++ XE5;
    • устранены несколько ложных срабатываний статического анализа.

Avots: linux.org.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster