V
主页
【C++20工程实战】自己动手实现纯头文件日志库
发布人
上一期“JSON解析器实战”播出后,广受同学好评,表示“希望看到更多结合项目源码的实战演练型课程”。为了结合实际案例演示std::format和std::source_location等C++20新特性的用法,本期视频中,小彭老师将带你实现一个简易单头文件日志格式化输出库!我们介绍了如何用std::format函数格式化输出字符串,用std::source_location类获取调用者的行号和文件名信息,用details名字空间实现内部函数的封装,对外隐藏细节,只暴露必要API函数,还演示了X-macro技术在枚举类型反射上的应用,支持日志分级,使用ANSI控制码颜色化输出,用std::ofstream写出到外部文件等。实现的minilog单头文件库麻雀虽小,五脏俱全,所有用到的这些知识都和专业的spdlog有共通性,因此,本系列C++20实战演练课程将是您提升编程应用能力的不二之选。 项目最终成品源码详见:https://github.com/archibate/minilog
打开封面
下载高清视频
观看高清视频
视频下载器
高性能C++日志库
如何设计高效日志库|多线程|同步异步|zlog|spdlog|mysql数据库|高并发|c/c++|linux
【C/C++进阶】宏函数实用指南
还在用rand生成随机数?来学学【现代C++】的正确用法吧!
【C++模板课】闭源软件能否元编程?模板编译慢,无法分离,容易代码膨胀?variant的空间利用效率低?小彭老师一一解答
【C++】C++日志库spdlog
鲜为人知的C++黑科技【__PRETTY_FUNCTION__】非侵入式的编译期反射
关于原来被双笙子佯谬删的所有评论
【C++11】自己动手做标准库:实现array容器
【C++/OpenGL】三体运动物理仿真
【C++标准库】自己动手实现vector容器
【现代C++】实现hexdump十六进制打印工具(基于ranges库)
【SIMD加速】SSE指令集基础教程
【C++11】多线程安全如此简单
【C++11】测试代码性能(执行时间)的正确姿势
【现代C++】静态反射实现自动JSON序列化
c++日志库spdlog使用简介
【公开课】现代CMake高级教程(持续更新中)
【公开课】现代OpenGL保姆级课程,从零开始打造3D游戏引擎(第三集:OBJ格式三维模型的加载与相机视角控制)
【C++20】编译期检测所有未定义行为和内存泄漏,不借助任何外部工具
【C++项目实战】实现一个JSON解析器
【C++11】自己动手实现unique_ptr智能指针,都有哪些难点?
C++高性能日志库设计与实现
【Vim插件整合包】C++/Python自动补全,模糊查找文件,编译CMake工程等
【C++17新特性】内存池与多态分配器(std::pmr::memory_resource)
【公开课】第02讲:RAII与智能指针
C++ Log 日志系统:从设计到实现
【C++】type_traits与SFINAE用法教学,检测是否有某成员函数
【C/C++后端开发】C++如何设计高效日志库(多线程、同步异步、zlog、spdlog、mysql数据库、|高并发)
【C++】变长模板参数与折叠表达式教学,index_sequence与逗号运算符的巧妙结合,实现tuple系列实用traits与编译期for循环
【C++】类型擦除 + 工厂模式,告别 if-else
【C++标准库】std::string用法指南&源码剖析
【C++】局部变量初始化,推荐用哪种写法?最不容易错?
【现代C++】如何写出易于维护的代码?类型就是最好的注释!
【公开课】C++11开始的多线程编程(#5)
【C++11】深入剖析lambda仿函数的原理,自己动手实现std::function容器
【C++辟谣】inline关键字的作用是“内联优化”?你可能是谭浩强的受害者!inline真正的用途是...
【C++11】区分左值、亡值、纯右值,及他们的引用
【公开课】现代C++进阶:模板元编程与函数式
【设计模式讲座】Zeno中的现代C++最佳实践