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 կամ առաջին լրահոսում:

  • Պ Verhalten փոփոխությունները
    • մի բաց дочерний PCDATA տարր ունեցող տարրերը այժմ արտաբերելու են բաց դատարկ պիտակներով (եթե չի օգտագործվում format_no_empty_element_tags պարամետրը):
  • Improvements
    • ավելացվել է PUGIXML_CHARCONV_FLOAT տարբերակեր, որոնք թույլ են տալիս փոխարկելու երկիմաստ թվեր <charconv> օգտագործելով; դրա համար պահանջվում է C++17, ինչն էլ թույլ է տալիս փոփոխությունները տեղաշարժել ուղղակի վիճակագրությունից և կարող է բարձրացնել արդյունավետությունը;
    • ավելացվել են xml_node::ensure_child և xml_node::ensure_attribute ֆունկցիաները, որոնք վերադառնում են նշված անվան дочерный տարր կամ հատկանիշ, ավելացնելով այն, եթե բացակայում էր;
    • բարելավվել է հանգույցների և հատկանիշների որոնման արդյունավետությունը ըստ անվան:
    • ապահովումների փաստաթուղթը դատարկ բուֆերից լիցքավորելը այլևս չի բերում մեմորի հատկացման:
  • XPath-ի բարելավումները
    • բարելավվել է հարցումների արդյունավետությունը, որոնց ընթացքում կատարվում է հատկանիշների արժեքների հաշվում կամ համեմատություն, օրինակ՝ @attr > 5;
    • բարելավվել է հարցումների արդյունավետությունը, որոնք ընտրում են հանգույցներ և հատկանիշներ ըստ անվան:
  • Ҳայրքերը շտկումներ
    • ճիշտ է ոնց որ՝ ստարկերների վրա շատ խորը ներդրվում է գաղտնիքներում՝ վերացման առողջացկան՝
    • ճիշտ են ամբողջական սահամները, որոնք կարող են բերել ճոճվելու ժամանակ շատ մեծ (> 1 ԳԲ) փաստաթղթերի վրա 32-բիթ ամպելման մեջ PUGIXML_WCHAR_MODE;
    • ճիշտ է զանշման րեւացուցանշերի ոհետեւ այս ֆիլմի ներկայացնելը որոշելու նախագծագույնները;
  • CMake-ի բարելավումներ
    • բարելավվել է PUGIXML_BUILD_APPLE_FRAMEWORK տարբերակի աջակցությունը;
    • ավելացվել է CMake PUGIXML_INSTALL_SOURCE տարբերակը pugixml.cpp-ը տեղակայելու համար (օգոստոսացնելու համար «պարզ փաստաթղթեր» ռեժիմում):
  • համատեղելիության բարելավումներ
    • ավելացվել են Visual Studio 2026-ի նախագծային ֆայլեր և NuGet փաթեթներ;
    • լուծվել են C++20 մոդուլների հետ համատեղելիության խնդիրները, երբ օգտագործվում է pugixml.hpp-ը գլոբալ մոդուլի ֆրագմենտում;
    • լուծվել են Clang և GCC -Wextra-semi-stmt, -Wsign-conversion և -Wuninitialized (GCC 16) նախազգուշացումները;
    • լուծվել են Embarcadero C++ XE5-ի հետ կոմպիլյացիայի խնդիրը;
    • վերացվել են մի քանի խաբված ազդանշանները մաքսային վերլուծությունից թեստի գրության ընթացքում.

Ընտանիք: linux.org.ru

Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster