Skip to content
PCwqyyPublic

About

PCwqyy的个人C++库! Personal C++ lib by PCwqyy.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

143 Commits

Folders and files

Repository files navigation

PClib

这是一个个人 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 。

贡献

欢迎任何形式贡献!您可以通过以下方法参与:

  1. 提交 issues 以报告错误或提议新功能
  2. 提交 pull request 以修复问题
  3. 改进文档

版本号

所以,版本号怎么编的?

  • 如果是正式版:
    • 采用 1.X.Y 格式
    • X 大版本号
    • Y 小版本号,如为 0 则省去
    • 举例:1.2 1.1.7
  • 如果是与发布版
    在 1.X.Y 后加入 rcZ
  • 如果是快照版:
    • 采用 YYvZZX 格式 跟 Mojang 学的
    • YY 年份
    • ZZ 年份内大快照编号
    • X 大快照内小快照编号
      • 按字母顺序编排
      • 如果本次快照是损坏的、不可运行的,则用 q, qq, q3, q4 ...标记,这类快照一般没有自述文件
    • 举例:24v3a 25v15e 26v1q 24v5qq 24v5q5

PClib 1.2.1

  • 自动同步数据容器 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

更新日志

历史

26v1a

  • 大幅修改了 Exception.hpp
    现支持流式处理、强制处理、类型继承等功能

26v2a

新 Demo: Color

  • 演示如何使用 Color 类

26v3a

目前 File.hpp 未测试,TUI 因 EnumLookup 改动二暂时损坏,将在下一个快照修复

26v4a

好吧我要拖一下 TUI 库的修复工作了……

重命名 Unicode.hpp → Unicodes.hpp

  • 重构了 Unicodes.hpp:加入了 UTF8、16、32的互相转换与 std::format 兼容,并解决了跨平台输出问题
  • 准备写 Meta.hpp, 将使用C++26反射库

26v5a

  • 移除了 VarSet.hpp, Sortting.hpp IO.hpp 以及 Containers.hpp 中的不健壮且可被标准库替代的容器
  • 移除了 Window.hpp,因为我再也不想和WinAPI打交道了
  • 改动了 Meta.hpp
  • 新增 demo/Demos 存放轻量级演示
  • File.hpp 初步测试完成
  • 移除了所有相对位置 #include,改为绝对位置寻址

1.2.1

祝贺!终于发 1.2.1 了
高三的第一个大版本

26v6a

  • 引入 Json.hpp,含反射序列化器,目前已实现序列化部分

26v7a

  • 修改了 Json.hpp 中大部分接口名,并加入Json风格化选项

26v8a

  • 将 Json.hpp 重命名为 Weak.hpp
  • 添加 Json.hpp,内有 Json DOM 类 pc::json::Value
  • 预计将 Weak.hpp 中的实现改为将任意类型转为 pc::json::Value ,并封装为 Weak 类对象
  • 为 Color、strutil:: 添加了 pc:: 命名空间

26v9a

  • 删除了 Exception.hpp 中所有的宏,改为constexpr 常量
    重命名规则:pcXPT_XXXX -> pc::xpt::XXXX
  • 将 pc::Exception 中细节与常量移入 pc::exception(alias: pc::xpt) 命名空间,但保留原先 pc::Exception 与 pc::Exeptioner 接口

About

PCwqyy的个人C++库! Personal C++ lib by PCwqyy.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages