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

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

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

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

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

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

Золы

Золы – это библиотека с открытым исходным кодом для «творческого кодирования» на C ++. Cinder, полезный для таких приложений, как аудио, вычислительная геометрия, графика и видео, поддерживает встроенные в платформу окна и обработку событий, а также абстракцию ввода-вывода и имеет встроенный API для синтаксического анализа XML и JSON. Создан вокруг идиоматики C ++ 11 такие функции, как shared_ptr, библиотека поставляется с многочисленными примерами. Cinder поддерживает MacOS, iOS, Linux, Windows и Windows UWP.

Эйген

Эйген представляет собой библиотеку шаблонов 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 возник из Открытые вычисления с высокой точностью инициатива. Он доступен бесплатно по лицензии Apache License 2.0.

OpenCV

OpenCV, или Open Source Computer Vision Library, – это библиотека компьютерного зрения и машинного обучения, изначально написанная на 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, Microsoft .NET Framework или Apple Cocoa.

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

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

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

Вес

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

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

Йокто / GL

Yocto / GL – это набор небольших библиотек C ++ 17 для построения физических алгоритмов графики. Он написан в стиле, ориентированном на данные, для простоты разработки и разделен на небольшие библиотеки, чтобы упростить навигацию по коду. Данные хранятся в простых структурах и доступны с помощью бесплатных функций или напрямую.

Yocto / GL включает код от генератора случайных чисел PCG, boost hash_combine, а также внешние библиотеки из общественного достояния или которые включены в их собственные лицензии. Разработчики Yocto / GL отдают предпочтение функциональному подходу, а не объектно-ориентированному, предпочитая бесплатные функции методам классов. Функции и данные определены в одноуровневых пространствах имен, содержащихся в пространстве имен yocto.

Yocto / GL выпущен под лицензией MIT и доступен по адресу GitHub. Требуется компилятор C ++ 17.

Авторские права © 2021 IDG Communications, Inc.


#первоклассных #библиотек #для #программирования #на

Source link