BundleBundle是一个可以嵌入的压缩库,支持23种压缩算法和2种归档格局。它几乎将所有常见的压缩库都进行了封装,同一了接口,开发者能够调用任意自己想要的压缩库。
特性Archive支持:.bun,.zipStream支持:DEFLATE,LZMA,LZIP,ZPAQ,LZ4,ZSTD,BROTLI,BSC,CSC,BCM,MCM,ZMOLLY,ZLING,TANGELO,SHRINKER,CRUSH,LZJB,BZIP2和SHOCO在可能的情况下,优化每个压缩机的最高压缩比。
在可能的情况下,优化每个减压器的最快解压时间。
可配置、可重新分发、自包含、合并和跨平台(c++03)。
可选的基准基础设施(c++11)。
ZLIB/LibPNG许可。
Fmtfmt是一个开源格局库,为Cstdio和C++iostream提供了一个快速安全的替换方案。
Assimp(OpenAssertImportLibrary)OpenAssetImportLibrary是一个库,用于将各种3d文件格式加载到共享内存格局中。它支持40多种导入文件格式和越来越多的导出文件格式选择。
Assimp为C/C++提供了API,与其它语言(C#、Java、Python、Delphi、D)有各种绑定,也可以在Android和IOS上运行。此外,assimp具有各种网格处理工具:法线和切线空间天生,三角测量,顶点缓存局部性优化,删除退化的图元和重复的顶点,按图元类型排序,合并冗余等等。
CeleroCelero是C++BenchmarkingLibrary,简朴易用。它与GoogleTest的架构相似,其目的是丈量某段代码的机能,消除你认为是准确方案的错误。
AmalgamateAmalgamate是一个跨平台的命令行工具,用于将C/C++源代码进行合并。好比某个C++库有几十个.h和.cpp文件,就可以使用Amalgamate将这些.h和.cpp文件封装成一个.h和.cpp文件,这两个文件会变得非常大。现在已经有许多人使用它对其它的库进行封装。
GetoptGetopt是一个简朴的命令行选项处理程序(c++11)。
BgfxBgfx是一个跨平台、图形APIagnostic、“自带引擎/框架”风格的渲染库。
支持的渲染后端:Direct3D11Direct3D12GNM(onlyforlicensedPS4developers,searchDevNetforumsforsource)MetalOpenGL2.1OpenGL3.1+OpenGLES2OpenGLES3.1VulkanWebGL1.0WebGL2.0支持的平台:Android(14+)iOS/iPadOS/tvOS(16.0+)LinuxmacOS(13.0+)PlayStation4RaspberryPiUWP(UniversalWindows,XboxOne)Wasm/EmscriptenWindows(7+)Doctestdoctest是一个新的C++测试框架,但是与其他功能丰富的替换方案比拟,它在编译时间(数量级)和运行时间上都是最快的。它带来了编译语言(如D/Rust/Nim)的能力,可以直接在产品代码中编写测试,这要归功于一个快速、透明和灵活的测试运行程序,它有一个干净的接口。
Stb_imageStb是一个C/C++的单文件公共领域(或MIT许可)库。它的实现全部都在头文件中,每个头文件代表一种功能的实现,在项目中直接引用头文件即可,不需要单独进行编译。
LibBFLibBF是一个处理任意精度浮点数的小库。它的编译大小约为90KB的x86代码,并且不依赖于其他库。它不是最快的库,也不是最小的库,但在使用渐近最优算法时,它尽量简朴。基本算术运算的运行时间接近线性。
Bullet3Bullet3是BulletPhysicsSDK的官方C++源代码库,主要用于VR、游戏、视觉效果、机器人、机器学习等实时碰撞检测和多物理模拟。
Stb_truetypeStb_truetype是一个轻量级的字体加载库,整个库只有一个头文件,在功能方面不如freetype强盛,但它的代码量比freetype少许多。
CinderCinder是一个peer-reviewed、免费的、用于创造性编码的开源C++库。Cinder支持macOS、Windows、Linux和iOS。在Mac上,它要求使用Xcode11.3.1或更高版本进行开发,在Windows上使用VisualC++2019或更高版本。
Pbrt-v3Pbrt库留存了pbrt版本的源代码,该版本在马特·法尔、文泽尔·雅各布和格雷格·汉弗莱斯所著的《基于物理的渲染:从理论到实现》第三版中有所描述,和以之前一样,代码在BSD许可下可用。
Better-enumsBetter-enums是一个C++枚举库,比尺度C++枚举更灵活和更强盛,它具有清楚的语法和反射编译时枚举库,在单个头文件中,没有依靠项。
在C++11中,一切都可以在编译时使用。您可以转换枚举,轮回遍历它们,找到它们的最大值,静态执行商定,并将结果作为模板参数或constexpr函数传递。所有的反射都可以满意元编程的需要。
C++98的接口也是一样的,你只需要在运行时使用它的大部分。这个库提供了有作用域和大小的枚举,这是C++98中没有内置的。
GLMGLM是一个基于OpenGLShading语言(GLSL)规范的图形软件的C++数学库。
GLM提供了用与GLSL相同的命名商定和功能设计和实现的类和函数,这样任何知道GLSL的人都可以在C++中使用GLM。
GLM库并不局限于GLSL的特色,一个基于GLSL扩展惯例的扩展系统,提供了扩展的能力:矩阵变换、四元数、数据打包、随机数、噪声等...
GLM库可以很好地兼容OpenGL,但它也确保了与其他第三方库和SDK的互操作性。它是软件渲染(光线跟踪/光栅化)、图像处理、物理模拟和任何需要简朴利便的数学库的开发环境的良好选择。
GLM是用C++98编写,但是当编译器支持时,可以使用C++11。同时,它也是一个独立于平台的库,不依赖于任何第三方库。
Catch2Catch2是一个C++的单元测试框架,但它也提供了基本的微基准测试特性和简朴的BDD宏。
Catch2的主要长处是使用起来既简朴又天然。测试名不需要是有效的标识符,断言看起来像普通的C++布尔表达式,提供了一种很好的本地方式来共享测试中的设置和删除代码。
好比,单元测试用例
RapidjsonRapidjson是一个用于C++的快速JSON解析器/生成器,具有SAX/DOM风格的API。
UchardetUchardet是一个编码检测器库,它采用未知字符编码的字节序列,不带任何附加信息,并试图确定文本的编码,返回的编码名称与图标兼容。好比,你输入一个未知编码的文本文件,uchardet能够预测该文件的编码类型,这与Python中的uchardet库功能类似。
xxHashxxHash是一种速度极快的哈希算法,在RAM速度限制下进行处理。代码是高度可移植的,并且在所有平台上产生相同的散列(小/大字节序)。
该库包括以下算法:XXH32:generates32-bithashes,using32-bitarithmeticXXH64:generates64-bithashes,using64-bitarithmeticXXH3(sincev0.8.0):generates64or128-bithashes,usingvectorizedarithmetic.The128-bitvariantiscalledXXH128.
DocoptDocopt是用于创建漂亮、美观的命令行界面。
Win-iconvwin_iconv是一个使用Win32API进行转换的iconv实现,通过调用win32API实现和iconv库一样的接口功能,终极编译出的软件较小。它的主要功能是字符编码转换。
FreetypeGLFreetypeGL是一个在OpenGL中使用单个纹理和单个顶点缓冲显示Unicode的小库。
#百家快评#NanoVGNanoVG是一个小型的OpenGL抗锯齿矢量图形渲染库。它有精简的API,模仿HTML5画布API。它旨在成为一个实用而有趣的工具集,用于构建可扩展的用户界面和可视化。
未经允许不得转载:头条资讯网_今日热点_娱乐才是你关心的时事 » 工作中常使用的C/C++开源库