# mtlib-pkg
**Repository Path**: hammlee/mtlib-pkg
## Basic Information
- **Project Name**: mtlib-pkg
- **Description**: MtLib的发行版
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-18
- **Last Updated**: 2026-07-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MtLib - 一个非线程安全的C++功能库(基于`C++17`)
## 功能
### MtlString: 字符串处理库
### MtlDebug: Debug和Log相关操作库
### MtlDateTime: 时间处理库
### MtlFile: 文件处理库
### MtlChco: 字符编码处理库
## 编译选项
### 程序内宏定义
> :bulb: Tips:
1、该部分内容可通过CMakeLists.txt中添加add_compile_definitions(XXX)或者add_definitions(-DXXX)定义, 也可通过程序中#define xxx来进行定义
2、注意不管使用哪种方式输出debug信息,都不建议直接对函数返回值直接进行输出,要先将函数返回值赋值到相应的变量中,再进行输出,否则可能会出现禁止Debug输出后,函数没有执行的情况
| 宏定义 | 功能 |缺省值 |
| ----------------------------- | -------------------------------- |-------|
| MTL_DEF_DEBUG_OUT_DISABLE | 决定是否输出debug内容① |未定义 |
| MTL_DEF_DEBUG_OUT_FORCE_DISABLE | 决定是否输出debug内容② |未定义 |
> ① 使用输出类各自的禁止输出的接口进行禁止输出,温和禁止,不禁止函数执行,速度也会相对较慢
② 强制禁止输出,特别对Print做出了优化,其中的函数也会被禁止执行
## 项目规则
### - 命名空间mtlib的使用
全局统一的命名空间,无论对内对外的接口,一定要在最外层将其调用
### - 命名空间mtlib_internal的使用
对外开放接口,但一般外部无需调用的功能类接口,一般是类模板实现的位置,调用时要保证在mtlib的包裹内
### - xxx_internal.h的使用
- 基本定义:对外开放的内部接口,一般是类模板实现的位置
- 安装位置:安装include/mtlib/internal中
- 定制格式:目前可对外使用的是`internal/format_generator`,其下面是定制MtlStreamOut和MtlPrint的输出格式,MtlPrint特化结构体模板时参照fmt官方规则
### - 对外公布的成员私有变量
- 命名规则:in+类型+功能+下划线,比如inStrFileName_
- 功能:用于调试时内容查看
## 第三方库
### abseil-cpp
- 版本: 20250814.1
- 链接: [https://github.com/abseil/abseil-cpp.git](https://github.com/abseil/abseil-cpp.git)
### fmt
- 版本: 12.1.0
- 链接: [https://github.com/fmtlib/fmt.git](https://github.com/fmtlib/fmt.git)
### icu
- 版本: 78.2
- 链接: [https://github.com/unicode-org/icu.git](https://github.com/unicode-org/icu.git)