Blogs
让 Clangd 支持 GCC 的 C++23 Std Module
本文主要记录在 Arch Linux 上使用 GCC 15.2.1 编译器编译包含 import std; 的 C++23 标准模块(std module)代码时,如何让 Clangd 正常工作——即 import std; 不再被标记为红色波浪线提示“Module 'std' not found”,并且能够正常提供其中符号的悬停(Hover)提示。
C++ 标准中值类别的中文翻译
以下内容是《ISO/IEC 14882:2024》[7.2.1] Value category [basic.lval] 部分的中文翻译。标准文件可从此仓库下载。
- glvalue(泛左值)是一个表达式,其求值结果决定了某个对象或函数的身份(identity)。
- prvalue(纯右值)是一个表达式,其求值用于初始化一个对象、或在特定上下文中计算某个运算符的操作数,或者是一个类型为 cv void 的表达式。
核心 Linux Socket API 用法释义
1. socket()
📖 解释:创建一个新的套接字,返回一个文件描述符用于后续网络通信.
第 1 个参数 🔑:协议族,指定通信协议类型.
- 示例:AF_INET(IPv4协议)、AF_INET6(IPv6协议)、AF_UNIX(本地进程间通信).
C++变参模板实战:递归继承实现简易元组类
详细的讲解请看 CppMore 里缪大佬的 这篇文章。
此处学习一下其中的使用 递归继承 技巧实现简易元组类这个例子。
直接 "Show me the code!"
在 Arch Linux 上编译 bloomberg/clang-p2996 小记
本文简要记录笔者在 Arch Linux 上编译一个部分支持 C++ 反射的 clang 编译器的过程。
期待 Reflection 能正式被编译器实现的那一天。 :)
本次实验受群友 Yiran Wang 启发。
克隆仓库
GitHub 仓库在 这里,有关这个编译器的介绍详情请看仓库(默认是 purpose 分支,代码在 p2996 分支上)。
C++ 库中的高效闰年判断算法解析
在 C++ <chrono> 库中,有如下判断闰年的算法:
class year
{
private:
short _M_y;
public:
constexpr bool
is_leap() const noexcept
{
return (_M_y & (_M_y % 25 == 0 ? 15 : 3)) == 0;
}
};
根据源代码的注释,总结一下优化思路:
如何为 gcc 贡献中文翻译
在本地试验
先在本地试一试修改 gcc 的翻译吧. 新建一个用来折腾的文件夹 ~/test/.
下载最新翻译
下载 Translation Project 上的最新版 gcc 简体中文翻译文件. 截至发稿时,gcc 最新版本为 14.2.0 版.