C ++是一种通用系统编程语言,于1979年进行了设计,至今已有40多年的历史了。C ++并没有失去动力,仍然处于多种编程语言受欢迎程度指数的顶部。

在IDE的创建者,编辑器,编译器,测试框架,代码质量和其他工具中,对C ++使用路径的平滑支持是该语言的广泛支持。软件开发人员还可以使用许多优秀的库来协助构建C ++应用程序。以下是C ++开发人员所依赖的10个方面。 

 

活动模板库

活动模板库(ATL)是Microsoft的一组C ++类,用于构建COM(公共对象模型)对象,并支持COM功能,例如双接口,标准COM枚举器接口,连接点和ActiveX控件。与Visual Studio IDE一起提供的ATL可用于构建单线程对象,单元模型对象,自由线程模型对象,或者构建自由线程和单元模型对象。

 

Asio C ++库

Asio C ++库 用于网络和低级别的I / O编程,提供一个一致的异步模式。通过为并发,C ++网络和其他类型的I / O提供基本的构建基块,Asio已用于从智能手机应用程序和游戏到高度互动的网站和实时交易系统的各种应用程序中。使用Asio的项目包括WebSocketPP库和用于Lua语言的DDT3远程调试器。Asio是Boost软件许可下的免费开放源代码,并在Linux,Windows,MacOS和FreeBSD上受支持。

 

Cinder

Cinder是C ++中用于“创意编码”的开源库。Cinder对音频,计算几何,图形和视频等应用很有用,它支持平台本地窗口和事件处理以及I / O抽象,并且具有用于XML和JSON解析的内置API。该库围绕惯用的C ++ 11功能(例如shared_ptr)进行设计,附带了许多示例。Cinder支持MacOS,iOS,Linux,Windows和Windows UWP。

 

Eigen

Eigen是一个用于线性代数的C ++模板库,包括矩阵,向量,数值求解器和相关算法。支持所有矩阵大小,从小的固定矩阵到任意大的密集矩阵。选择算法以提高可靠性。支持所有标准数字类型。为了提高速度,Eigen提供了表达模板,可智能删除临时模板并启用惰性评估。根据Mozilla Public License 2可以免费获得,并且可以从Eigen项目页面下载,Eigen已安装了由支持者描述为对C ++程序员而言表现力强,干净自然的API。针对Eigen的测试套件已针对许多编译器运行,以确保可靠性。

 

FloatX

FloatX或Float eXtended是用于低精度浮点类型仿真的仅标头库。虽然FloatX与C ++编译器本机兼容,但其他语言(例如Python或Fortran)可以调用FloatX。浮点类型的扩展超出了本机单精度和双精度类型。提供的模板类型允许用户选择用于指数的位数以及浮点数的重要部分。FloatX基于FlexFloat库的思想,用于模拟精度降低的浮点类型,但在C中实现了FlexFloat功能的超集并提供了C ++包装器。FloatX源自“开放式高精度计算”计划。根据Apache License 2.0,它是免费提供的。 

 

OpenCV

OpenCV或开源计算机视觉库是一种以C ++原生编写的计算机视觉和机器学习库,可在BSD许可下使用。OpenCV的构建旨在为计算机视觉应用程序提供通用的基础结构,并加速在商业产品中使用机器感知。OpenCV为人脸识别,对象检测,对象分类,3D模型提取,图像搜索等提供了2500多种优化算法,OpenCV已积累了超过47,000人的用户社区。该库可从OpenCV项目网站上获得,提供C ++,Java,Python和Matlab接口,并支持Windows,Linux,Android和MacOS。CUDA和OpenCL接口正在开发中。

 

Poco 

为了简化C ++开发,Poco(便携式组件)C ++库是跨平台的C ++库,用于构建Internet和网络应用程序,以在从台式机和服务器到移动和IoT设备的系统上运行。这些库还可用于通过REST API构建微服务,以进行机器学习或数据分析。Poco库在概念上类似于Java类库,Microsoft的.NET Framework或Apple Cocoa。

开发人员可以使用Poco库在C ++中构建与SQL数据库,Redis或MongoDB对话的应用服务器,或者为与云后端对话的IoT设备构建软件。这些库的功能包括缓存框架,HTML表单处理,用于传输文件的FTP客户端以及HTTP服务器和客户端。Poco库在Boost软件许可下免费提供,可从GitHub下载。 

 

Windows模板库

Windows模板库(WTL)最初来自Microsoft,(自2004年起)是一个开放源代码库,用于构建轻量级Windows应用程序和UI组件。WTL定位为Microsoft Foundation Classes工具包的替代产品,它扩展了ATL,并为控件,对话框,框架窗口和GDI对象提供了一组类。

 

Wt

Wt是现代C ++中的Web GUI库,它使开发人员无需编写JavaScript即可使用小部件构建交互式Web UI。Wt是服务器端解决方案,它确实请求处理和页面渲染,提供内置的安全性,PDF渲染,2D和3D绘画系统,对象关系映射库,图表库和身份验证框架。核心库是开放源代码,提供了可在Linux,Unix或Windows上部署的混合单页框架。

Wt由软件工程公司Emweb开发,与HTML5和HTML4浏览器以及纯HTML用户代理兼容。而且Wt可以与第三方JavaScript库集成。使用Wt,应用程序被定义为窗口小部件的层次结构-从通用的窗口小部件(例如按钮)到专门的窗口小部件(例如整个博客窗口小部件)。小部件树在浏览器中呈现为HTML / JavaScript。可以从项目网页上下载Wt。开源和商业使用条款均可用。 

 

Yocto / GL

Yocto / GL是用于构建基于物理的图形算法的小型C ++ 17库的集合。它以面向数据的风格编写,以便于开发,并拆分为多个小库以简化代码导航。数据存储在简单的结构中,并可以使用自由函数或直接访问。

Yocto / GL包含来自PCG随机数生成器,boosthash_combine和来自公共领域的外部库的代码,或包含在其自己的许可证中的代码。Yocto / GL的开发人员更喜欢一种功能性方法,而不是面向对象的方法,它们倾向于将自由函数用于类方法。函数和数据在yocto名称空间中包含的同级名称空间中定义。

Yocto / GL是根据MIT许可发布的,可从GitHub获得。需要C ++ 17编译器。

更多推荐

10个顶级C ++编程库,你值得拥有!!!