利用 raii 机制实现一个记录程序耗时的类
c++ 中提供了一个计时的模板 std::chrono, 里面有三种时钟: steady_clock, system_clock 和 high_resolution_clock。 std::steady_clock 类似秒表, 适合用于记录程序耗时; std::system_clock 是系统的时钟, 因为系统的时钟可以修改, 甚至可以网络对时, 所以用系统时间计算时间差可能不...
c++ 中提供了一个计时的模板 std::chrono, 里面有三种时钟: steady_clock, system_clock 和 high_resolution_clock。 std::steady_clock 类似秒表, 适合用于记录程序耗时; std::system_clock 是系统的时钟, 因为系统的时钟可以修改, 甚至可以网络对时, 所以用系统时间计算时间差可能不...
由于 std::any 是 c++17 才有的函数,在低标准的 c++ 中想要使用这个函数很不方便,所以我参考 llvm里的代码实现了一个精简版。 #include <iostream> #include <memory> #include <typeindex> class Any { private: struct HoldBase { ...
todo
todo
todo
在很多开源库中总是能看到在函数开头有一句 __attribute__ ((visibility("hidden"))) 或者 __attribute__ ((visibility("default"))),这样做有什么作用呢?其实这个是指定 API 的可见性,可以更细致地控制库的 API,提高库的封装性。这在创建共享库时尤其重要,因为它允许库的作者明确地指定哪些符号是公开的,哪些符号是私...
figlet 是一个用于生成艺术字体的命令行工具,可以将普通文本转换成由字符组成的大字体。它支持多种字体样式和自定义字符宽度,可用于创建独特的文本艺术效果。figlet 常用于终端显示、标语设计和文本装饰等场景。 示例 # 列出所有风格 showfigfonts # 生成 bubble 风格的艺术字 figlet -f bubble TPTINC _ _ _ _ ...
ffmpeg 是一个开源的跨平台音视频处理工具,它可以用于处理、转换、编辑和播放音视频文件。它提供了一组强大的命令行工具,可以在命令行中执行各种音视频处理任务。它支持多种音视频格式,包括常见的 MP4、AVI、MKV 等,以及各种音频编码和视频编码。它可以进行音视频文件的转码、剪辑、拼接、裁剪、提取音频、添加字幕等操作。还可以调整音频的音量、平衡、混音等参数,对视频进行裁剪、缩放、旋转、加水...
在 ubuntu 系统上安装 wps 后,启动报错 some formula symbols might be not display,原因是 wps 字体缺失,解决办法如下: git clone https://github.com/IamDH4/ttf-wps-fonts.git cd ttf-wps-fonts sudo ./install.sh
C++ 中的共享指针通过引用计数机制实现自动内存管理,下面是一个简约版的共享指针实现方式,用于学习和理解共享指针的底层实现。 代码 #include <iostream> template <typename T> class SharedPtr { private: T* m_ptr; unsigned* m_count; void ...