C++ 函数可变参实现方法的演进

0 Comment

可变参数函数是接受可变数量参数的函数,在不少场景下,可变参数函数是非常有用的。比如想打印日志时,可以接受任意数量的参数,然后将这些参数拼接输出到控制台,如下:

1
2
3
4
{
// ...;
LogInfo(user, cost, action, result);
}

在C++中,可变参数函数的实现方法也是不断演进的,从最初C风格的可变参数列表,到 C++11 的变参模板,再到 C++17 引入的折叠表达式,见证了 C++ 语言的逐步发展和完善。接下来本文会介绍这三种方式的实现细节以及优缺点。

阅读全文

Bazel 依赖缺失导致的 C++ 进程 coredump 问题分析

0 Comment

最近在项目中遇到了一个奇怪的 coredump 问题,排查过程并不顺利。经过不断分析,找到了一个复现的步骤,经过合理猜测和谨慎验证,最终才定位到原因。

C++ coredump bazel依赖缺失C++ coredump bazel依赖缺失

复盘下来,发现这类 coredump 问题确实比较罕见,排查起来也不是很容易。只有项目代码编译依赖管理不是很合理的时候,才可能出现。另外,在复盘过程中,对这里的 coredump 以及 C++ 对象内存分布也有了更多理解。于是整理一篇文章,如有错误,欢迎指正。

阅读全文

为什么一定要尽快用上 ChatGPT 等大语言模型

0 Comment

很多年以后,当人们回忆起 2023 年,或许只会记得这是 ChatGPT 和各种大语言模型诞生的一年,这是人工智能元年!

一定要尽快用 ChatGPT 等大语言模型一定要尽快用 ChatGPT 等大语言模型

阅读全文