# 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)