/blog/images/avatar.webp

Hello World

C++11 新特性详细总结

C++ 多线程编程详细总结

C++11 首次引入了标准跨平台多线程库,彻底替代了此前 Windows、Linux 等平台各自的原生线程API(如CreateThreadpthread),后续 C++14/17/20 持续补充完善,形成了完整的现代C++多线程体系。本文从基础概念到高级特性、从核心用法到避坑指南,进行全面系统的总结。

C++ 模板编程详细总结

C++ 模板编程 超详细全面总结

模板是C++泛型编程的核心基石,本质是编译期代码生成机制:编译器根据传入的类型/常量参数,在编译期自动生成类型安全、零运行时开销的具体代码,实现“一次编写,任意类型复用”,同时支撑编译期计算、类型元编程等高级特性。

C++17 实现定时器触发任务

C++17 定时器实现(支持单次/循环任务、线程安全)

该实现完全基于C++17标准特性,核心采用单调时钟steady_clock(避免系统时间修改导致的计时偏差)、优先队列管理任务(按触发时间排序,效率最优),支持线程安全的任务添加、取消、定时器启停,同时处理了任务异常、计时累积误差等常见问题。

C++17 实现协程机制

前提说明

C++17 标准没有内置协程语法与标准库,协程是 C++20 才正式标准化的特性。C++17 实现协程,主流方案是用户态有栈协程(Stackful Coroutine),基于平台上下文切换 API 实现执行流的用户态切换,完全避开内核态调度,切换开销远小于线程。

C++23 新特性详细总结

C++23 新特性详细总结

C++23 是 ISO C++ 标准在 C++20 之后的正式版本,核心定位是对 C++20 特性的补全与优化,同时引入大量提升开发效率、代码安全性、运行时性能的能力,整体分为核心语言特性标准库特性两大模块,同时包含部分特性的移除与废弃。

C++20 新特性详细总结

C++20 新特性详细总结

C++20(ISO/IEC 14882:2020)是继C++11之后最具革命性的C++标准版本,于2020年12月正式发布。它通过四大核心支柱特性彻底革新了C++的编程范式,同时引入了数十项语言与标准库增强,大幅提升了代码的类型安全、编译效率、表达力、可维护性与性能,解决了传统C++长期存在的诸多历史痛点。

C++17 新特性详细总结

C++17 新特性完整详细总结

C++17(ISO/IEC 14882:2017)是继C++11之后的又一重大标准版本,于2017年12月正式发布。它延续了C++“零开销抽象”的核心哲学,在语法层面大幅简化编码复杂度,深化编译期计算能力,完善类型安全;在标准库层面补齐了并行计算、文件系统、类型安全容器等核心能力,让C++更易用、更高效、更安全。

C++14 新特性详细总结

C++14 新特性详细总结

C++14(ISO/IEC 14882:2014)是C++11标准的增量更新版本,核心定位是补全C++11的设计缺陷、简化语法、增强泛型编程能力与编译期计算能力,无颠覆性的语法革新,整体让现代C++的开发体验更流畅、安全、简洁。整体分为核心语言新特性标准库新特性两大模块,以下是完整详细总结。

Bash 调试技巧

Bash 调试技巧

bash 脚本是一种常用的脚本。当 bash 脚本执行出现错误的时候,我们可以通过调试的方式来定位问题所在。

Bash 调试常用选项

选项 说明
-v 打印执行命令
-x 类似 -v,并扩展了命令
-e 发生错误终止执行
-n 只检查语法,不执行脚本
-o pipefail 返回管道的错误状态

跟踪脚本的执行

输出调试信息

正常情况下,通过 bash test.sh./test.sh 执行脚本,利用 echo 或者 printf 命令可以输出一些信息,但是不能输出命令的具体执行情况。

Shell 配置文件的加载

Shell 启动方式

启动方式

Shell 的启动方式有以下四种:

  • 交互式登录
  • 非交互式登录
  • 交互式非登录
  • 非交互式非登录

其中交互式是指需要使用者手动输入的方式,而非交互式指的是脚本方式运行,不需要使用者手动输入。登录指的是使用者需要输入用户名和密码的方式,需要特定用户才能执行,而非登录不需要输入用户名和密码,任何用户都能执行。

Docker 使用 buildx 构建多平台镜像

Docker

apt-get install git

git 配置文件

git 配置文件有三个:

  1. /etc/gitconfig 是系统级配置文件,使用 git config --system 命令进行修改。
  2. ~/.gitconfig~/.config/git/config 是用户级配置文件,使用 git config --global 命令进行修改。
  3. local_dir/.git/config 是仓库级配置文件,使用 git config --local 命令进行修改。

设置用户信息

$ git config --global user.name "username"
$ git config --global user.email username@example.com

设置 git 默认编辑器

git config --global core.editor emacs