8 чудесни библиотеки за програмиране на C ++

C ++ е език за програмиране с общо предназначение, който вече е на повече от 40 години и е проектиран през 1979 г. Далеч от загубата на пара, C ++ все още се нарежда на върха на множество индекси за популярност на езика за програмиране.

Изглаждането на пътя към използването на C ++ е широка поддръжка на езика сред създателите на IDE, редактори, компилатори, тестови рамки, качество на кода и други инструменти. Разработчиците на софтуер също имат на разположение много отлични библиотеки за подпомагане на изграждането на C ++ приложения. Ето осем, на които разработчиците на C ++ разчитат. 

Активна библиотека с шаблони

От Microsoft, Active Template Library (ATL) е набор от C ++ класове за изграждане на COM (Common Object Model) обекти, с поддръжка на COM функции като двойни интерфейси, стандартни интерфейси на COM преброител, точки за връзка и ActiveX контроли. Предлага се с Visual Studio IDE, ATL може да се използва за изграждане на обекти с една нишка, обект на модел на апартамент, обекти на модел със свободна резба или обекти със свободна резба и модел на апартамент.

Библиотека на Asio C ++

Библиотеката Asio C ++ се използва за мрежово и I / O програмиране на ниско ниво, предлагайки последователен асинхронен модел. Предоставяйки основни градивни елементи за едновременност, C ++ мрежи и други видове I / O, Asio се използва в приложения, вариращи от приложения за смартфони и игри до силно интерактивни уебсайтове и системи за транзакции в реално време. Проектите, използващи Asio, включват библиотеката WebSocketPP и отдалечения дебъгер DDT3 за езика Lua. Asio се предлага като безплатен отворен код под лиценза Boost Software и се поддържа на Linux, Windows, MacOS и FreeBSD.

Eigen

Eigen е библиотека с шаблони на C ++ за линейна алгебра, включително матрици, вектори, числови решатели и свързани алгоритми. Поддържат се всички размери на матриците, от малки, фиксирани матрици до произволно големи, плътни матрици. Алгоритмите са избрани за надеждност. Поддържат се всички стандартни цифрови типове. За бързина Eigen разполага с шаблони за изразяване, за да премахне интелигентно темпорарите и да даде възможност за мързелива оценка. Свободно достъпен под Mozilla Public License 2 и може да се изтегли от страницата на проекта Eigen, Eigen е снабден с API, описан от поддръжниците като изразителен и изчистен и естествен за програмистите на C ++. Тестовият пакет за Eigen е стартиран срещу много компилатори, за да се гарантира надеждност.

FloatX

FloatX или Float eXtended е библиотека само със заглавки за емулация на тип с плаваща запетая с ниска точност. Въпреки че е съвместим с компилаторите на C ++, FloatX може да бъде извикан от други езици като Python или Fortran. Типовете с плаваща запетая се разширяват извън родните типове с единична и двойна точност. Предоставят се типове шаблони, които позволяват на потребителя да избере броя на битовете, използвани за експонента, както и значителни части от числото с плаваща запетая. FloatX се основава на идеята за библиотеката FlexFloat за емулиране на плаващи типове с намалена точност, но реализира супер набор от функционалности на FlexFloat в C и предоставя обвивки C ++. FloatX се появи от инициативата Open Transprecision Computing. Предлага се безплатно под лиценза Apache 2.0. 

OpenCV

OpenCV или библиотека за компютърно зрение с отворен код е библиотека за компютърно зрение и машинно обучение, написана в C ++ и достъпна под лиценз BSD. OpenCV е създаден, за да осигури обща инфраструктура за приложения за компютърно зрение и да ускори използването на машинното възприятие в търговски продукти. Повече от 2500 оптимизирани алгоритми за разпознаване на лица, откриване на обекти, класификация на обекти, извличане на 3D модели, търсене на изображения и много други, OpenCV събра потребителска общност от над 47 000 души. Достъпна от уебсайта на проекта OpenCV, библиотеката предоставя интерфейси C ++, Java, Python и Matlab и поддържа Windows, Linux, Android и MacOS. Интерфейсите CUDA и OpenCL са в процес на разработка.

Poco C ++ библиотеки

Предназначени да опростят разработката на C ++, библиотеките Po ++ (преносими компоненти) C ++ са междуплатформени библиотеки C ++ за изграждане на интернет и мрежови приложения, които да работят на системи, вариращи от настолни компютри и сървъри до мобилни и IoT устройства. Библиотеките също могат да се използват за изграждане на микроуслуги с REST API за машинно обучение или анализ на данни. Библиотеките на Poco са сходни по концепция с Java Class Library, .NET Framework на Microsoft или Apple Cocoa.

Разработчиците могат да използват библиотеките на Poco за изграждане на сървъри на приложения в C ++, които говорят със SQL бази данни, Redis или MongoDB, или за изграждане на софтуер за устройства на IoT, които говорят с облачни back-end. Сред функциите на библиотеките са кеш рамка, обработка на HTML формуляри, FTP клиент за прехвърляне на файлове и HTTP сървър и клиент. Библиотеките на Poco са достъпни безплатно под лиценза Boost Software и могат да се изтеглят от GitHub. 

Библиотека с шаблони на Windows

Първоначално от Microsoft, Windows Template Library (WTL) е (от 2004 г.) библиотека с отворен код за изграждане на леки приложения за Windows и компоненти на потребителския интерфейс. Позициониран като алтернатива на инструментариума на Microsoft Foundation Classes, WTL разширява ATL и предоставя набор от класове за контроли, диалогови прозорци, прозорци на рамки и GDI обекти.

Wt

Wt е уеб GUI библиотека в съвременния C ++, която позволява на разработчиците да създават интерактивни уеб потребителски интерфейси с джаджи, без да се налага да пишат JavaScript. Решение от страна на сървъра, Wt прави обработка на заявки и изобразяване на страници, осигурявайки вградена защита, рендиране на PDF, 2D и 3D система за рисуване, обектно-релационна библиотека за картографиране, библиотека за графики и рамка за удостоверяване. Основната библиотека е с отворен код, предоставяйки хибридна рамка от една страница, която може да бъде внедрена в Linux, Unix или Windows.

Разработено от компанията за софтуерен инженеринг Emweb, Wt е съвместимо с браузъри HTML5 и HTML4, както и с обикновени потребителски агенти на HTML. И Wt може да се интегрира с JavaScript библиотеки на трети страни. С Wt приложението се дефинира като йерархия на приспособленията - вариращи от общи приспособления като бутони до специализирани приспособления като цял приспособление за блог. Дървото на приспособленията се изобразява като HTML / JavaScript в браузъра. Wt може да бъде изтеглен от уеб страницата на проекта. Предлагат се както условия за използване с отворен код, така и за търговски цели