2.4 KiB
2.4 KiB
mix_cc
version 3.2.2
mix_cc是什么?
- mix_cc 是由null开发的一个工具类库。
- 它包含了算法、异常处理、json(c++14)、ihyperdb、数学表达式、序列化、共享内存、sql(需要c++17支持), 以及支持这些所需要的额外组成部分。
- 这个工具库需要使用者具有基础的boost、eigen、c++14和json知识。
- 目前异常处理、json、共享内存和ihyperdb的组成部分是比较稳定的,其余部分出现问题可能性较大,需要小心使用。
- 如果需要使用该库,需要添加头文件的同时,添加链接信息,位置在 project/lib/libmix_cc_xxxx.a
mix_cc的思想是什么?
- mix_cc的核心思想是:使用最简单的易读的代码,写出最易用的接口,完成最复杂的任务。
- 任何人的精力都是有限的,代码越多,出错的可能性也就越大,后期维护的成本也越高
如何构建mix_cc?
前置需求
- 至少支持c++20的编译器,GCC最低10
- boost 1.75及以上
- db2、sqlapt++ 和 ihyperDB
- cmake3以上
- Eigen (algorithm下的依赖)
- nlohmann_json
- vcpkg作为包管理器(非必须,但是默认需要其提供的cmake)
建议使用的工具集为
- centos7(redhat7)
- devtoolset10(开启方法自行百度)
- cmake 3.20
- python3.7
- vcpkg进行包管理
mix_cc支持什么?
- 数学算法
- DB2 链接和管理 (增删改查,通过json返回结果)
- iHyperDB链接和管理 (通过numcpp中的ndarray进行处理)
- 全局异常事件抛出和打印 expection stacktrace
- json(使用nlohmann_json)
- 使用STL的共享内存 shm (内置 vector string map)
- c++ sql 和数据库支持
- c++ 数学表达式支持
mix_cc的项目目录
仅头文件项目
- algorithm (常用算法)
- json (json库)
- math (数学式)
- serialize (boost提供的序列化/反序列化,目前没有使用,可以考虑使用dlib的序列化/反序列化方法代替)
- type (项目基本类型)
- type_traits (类型萃取机)
需要额外构建的子项目
- exception (异常处理,用于运行时异常)
- ihyper_db (ihyperdb 类库)
- matheval (数学表达式)
- shm (共享内存)
- sql (sql和数据库查询)
- stacktrace (堆栈异常处理,用于堆栈异常)
- utility (工具)