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




