8 отличных библиотек для программирования на C ++

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

Сглаживание пути к использованию C ++ - это широкая поддержка языка разработчиками IDE, редакторов, компиляторов, тестовых фреймворков, качества кода и других инструментов. Разработчики программного обеспечения также имеют в своем распоряжении множество отличных библиотек, помогающих создавать приложения на C ++. Вот восемь, на которые полагаются разработчики C ++. 

Библиотека активных шаблонов

От Microsoft библиотека активных шаблонов (ATL) - это набор классов C ++ для создания объектов COM (общая объектная модель) с поддержкой функций COM, таких как двойные интерфейсы, стандартные интерфейсы перечислителя COM, точки подключения и элементы управления ActiveX. Доступный в среде IDE Visual Studio, ATL можно использовать для создания однопоточных объектов, объектов квартирной модели, объектов модели со свободными потоками или как объектов модели со свободными потоками, так и объектов модели квартир.

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

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

Эйген

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

FloatX

FloatX или Float eXtended - это библиотека только для заголовков для эмуляции типа с плавающей запятой низкой точности. Хотя FloatX изначально совместим с компиляторами C ++, его можно вызывать на других языках, таких как Python или Fortran. Типы с плавающей запятой расширены за пределы собственных типов одинарной и двойной точности. Предоставляются типы шаблонов, которые позволяют пользователю выбирать количество битов, используемых для экспоненты, а также значимые части числа с плавающей запятой. FloatX основан на идее библиотеки FlexFloat для эмуляции типов с плавающей запятой пониженной точности, но реализует расширенный набор функций FlexFloat на C и предоставляет оболочки C ++. FloatX возник в результате инициативы Open Transprecision Computing. Он доступен бесплатно по лицензии Apache License 2.0. 

OpenCV

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

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

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

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

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

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

Wt

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

Разработанный компанией Emweb, занимающейся разработкой программного обеспечения, Wt совместим с браузерами HTML5 и HTML4, а также с простыми пользовательскими агентами HTML. И Wt может интегрироваться со сторонними библиотеками JavaScript. В Wt ​​приложение определяется как иерархия виджетов - от общих виджетов, таких как кнопки, до специализированных виджетов, таких как виджет всего блога. Дерево виджетов отображается в браузере как HTML / JavaScript. Wt можно скачать с веб-страницы проекта. Доступны как открытый исходный код, так и условия коммерческого использования.