个人库,用来管理和存储一些常用的功能,采用xmake + c++ module
本库包含以下主要功能:
-
PotatoTMP —— 模板元编程功能库。
-
PotatoPointer —— 嵌入式智能指针功能库。
-
PotatoStrEncode ——
Unicode
字符之间的编码相互转换的功能库。 -
PotatoSLRX ——
LR(x)
的语法分析库,X为可配置。 -
PotatoReg —— 为词法分析特化实现的,基于DFA的正则表达式分析库,可将多个正则表达式合并到同一个分析表中,以提高速度。
-
PotatoStrFormat ——
std::format
类似物,提供数据与Unicode
字符之间的相互转化。 -
PotatoEnbf ——
ENBF
词法/语法分析库。 -
PotatoDocument —— 处理带文件BOM头的纯字符串文件读写
-
PotatoInterval —— 数学概念中的区间运算
-
PotatoIR —— 动态类型库,支持动态拼接数据类型,并提供动态类型的基础反射
-
PotatoTaskSystem —— 基于线程池的多线程任务系统
-
PotatoTaskFlow —— 基于有向无环图的多线程任务图
- PotatoPath 虚拟路径系统,映射代码中的路径和本地文件系统的路径
从 Github 上将以下库Clone到本地:
https://github.com/BleedingChips/Potato.git
目前要求C++23
以上,且只支持使用xmake
在windows
下进行构建,可以使用目录下的xmake_install.ps1
获取最新版的xmake
,并且使用目录下的xmake_generate_vs_project.ps1
来生成vs的工程项目。
要作为第三方库引用,只需要在第三方库中的xmake.lua
中加入
include("PotatoProectFile/Potato")
其中PotatoProectFile
是该项目在本地的路径。然后在xmake
的target
中填入:
target(xxx)
...
add_deps("Potato")
target_end()
然后在CPP
文件中import
:
import Potato; // 使用所有的Potato模块
import PotatoTaskSystem; // 只使用单独的模块
若不想使用xmake
,直接将Potato/
下的Potato
文件夹复制粘贴到项目中即可。
Potato/Potato
所有的代码。Potato/Test
各模块的测试代码。README_XXXX.md
各模块的基本介绍