这是一个个人 C++ 库,其中某些功能仅在 Windows 上可用
- 文本用户界面(TUI)
- 颜色计算
- IO & 文件操作
- Ansi 转义
- Unicode 处理
- 数学支持
- 容器类
- (Windows) Web 套接字(socket)
- (Windows) 控制台扩展
- 还有更多...
克隆仓库并 include 头文件即可
git clone https://github.com/PCwqyy/PCLib.git
git clone https://gitee.com/pcwqyy/PClib.git示例:
#include"Utility/Ansi.hpp"请在编译选项中加入 -I /path/to/pclib/src
详见此处
作者英语水平有限,如果发现拼错等还请多多包涵
邮箱: w123567910@outlook.com
博客:www.cnblogs.com/PCwqyy
该项目使用 MIT License 。
欢迎任何形式贡献!您可以通过以下方法参与:
- 提交 issues 以报告错误或提议新功能
- 提交 pull request 以修复问题
- 改进文档
所以,版本号怎么编的?
- 如果是正式版:
- 采用
1.X.Y格式 X大版本号Y小版本号,如为 0 则省去- 举例:
1.21.1.7
- 采用
- 如果是与发布版
在1.X.Y后加入rcZ - 如果是快照版:
- 采用
YYvZZX格式跟 Mojang 学的 YY年份ZZ年份内大快照编号X大快照内小快照编号- 按字母顺序编排
- 如果本次快照是损坏的、不可运行的,则用
q,qq,q3,q4...标记,这类快照一般没有自述文件
- 举例:
24v3a25v15e26v1q24v5qq24v5q5
- 采用
- 自动同步数据容器
SyncedData - 标签化错误处理
pc::Exception - 多种文件类型支持
pc::File - 移除了所有相对位置
#include,改为绝对位置寻址
| 功能 | 计划实现版本 | 子库 |
|---|---|---|
| 反射序列化器 | 1.2.2 | Experimental |
| 反射 Json 解析器 | 1.2.2 | Experimental |
| 清理老库中过时的类 | 1.2.3 | Container |
| 健壮化老东西 | 1.2.3 | Container |
| 重构 Command 库参照 Minecraft 源码 | 1.2.4 | Container |
| 模块化所有库 | 1.2.5 | |
| 重构 TUI 库为 DOM 结构 | 1.3 | TUI |
- 大幅修改了
Exception.hpp
现支持流式处理、强制处理、类型继承等功能
- 拆分 TUI 头文件
- 拆出
StrUtils.hpp - 完善
Color.hpp的错误处理机制 - 修改了
Exception.hpp
现支持类型继承功能支持拥有多个类型同时捕获
新 Demo: Color
- 演示如何使用
Color类
- 移除了
Multinclude.hpp - 重构了
File.hpp - 完善了常量查询类
EnumLookup
目前 File.hpp 未测试,TUI 因 EnumLookup 改动二暂时损坏,将在下一个快照修复
好吧我要拖一下 TUI 库的修复工作了……
- 重构了
Unicodes.hpp:加入了 UTF8、16、32的互相转换与std::format兼容,并解决了跨平台输出问题 - 准备写
Meta.hpp, 将使用C++26反射库
- 移除了
VarSet.hpp,Sortting.hppIO.hpp以及Containers.hpp中的不健壮且可被标准库替代的容器 - 移除了
Window.hpp,因为我再也不想和WinAPI打交道了 - 改动了
Meta.hpp - 新增
demo/Demos存放轻量级演示 File.hpp初步测试完成- 移除了所有相对位置
#include,改为绝对位置寻址
祝贺!终于发 1.2.1 了
高三的第一个大版本
- 引入
Json.hpp,含反射序列化器,目前已实现序列化部分
- 修改了
Json.hpp中大部分接口名,并加入Json风格化选项
- 将
Json.hpp重命名为Weak.hpp - 添加
Json.hpp,内有 Json DOM 类pc::json::Value - 预计将
Weak.hpp中的实现改为将任意类型转为pc::json::Value,并封装为Weak类对象 - 为
Color、strutil::添加了pc::命名空间
- 删除了
Exception.hpp中所有的宏,改为constexpr常量
重命名规则:pcXPT_XXXX->pc::xpt::XXXX - 将
pc::Exception中细节与常量移入pc::exception(alias:pc::xpt) 命名空间,但保留原先pc::Exception与pc::Exeptioner接口