Clangd中的SelectionTree:概述和实现

    2025-07-16
    SelectionTree在Clangd的Tweak系统中的作用 Clangd的SelectionTree是一个实用工具,用于将编辑器选择(或光标位置)映射到相应的AST节点。它被clangd的Tweak(code action)系统大量使用。当请求code action时,clangd会为请求的范围构建一个SelectionTree,并通过Tweak::Selection输入提供它。这允...
    Read More

    机器学习中的层规范化(及PyTorch示例)

    2023-04-24
    机器学习中层规范化的快速介绍,以及PyTorch示例代码。 导语 训练机器学习算法是一项颇具挑战性的任务,尤其是在使用来自现实世界的数据集时。在人们可能遇到的众多问题中,中间激活层统计量的稳定性问题是非常常见的一个。这篇文章中,我们将简要讨论保证统计量稳定性的常用方法之一:层规范化。 到底什么是层规范化? 遇到的问题 正如你所知道的,训练一个机器学习模型是一个随机化的过程。...
    Read More

    C++模板的声明和实现的分离

    2023-04-19
    使用内联函数在头文件中实现模板是目前使用它们的唯一通用方式。 对于一个模板,它的声明和实现不能分开置于头文件和源文件(即 .cpp)中。要解释这一点,我们需要先大致了解C++源代码是如何编译和链接的。 C++源代码的编译和链接 只有源文件会被编译,而头文件不会被直接编译。 (1) 在进行编译之前,C++编译器会对源代码进行预处理,其中就包括将源文件中的...
    Read More

    置零:=0?&=0?^=?

    2023-01-08
    “中级语言” C语言虽然具备完整的高级语言特性,但更多特性的设计是针对CPU和硬件设计的,因为设计C语言的原始目的是为了代替汇编语言开发操作系统。 在设计C语言的那个年代,RISC并不流行,为了提升低主频CPU的性能,增强单条指令的功能,提供更多的指令和指令寻址方式,是更为常用的方法,也就是CISC的思路,从8086/8088开始的x86就是典型的例子。实际上,CISC和RISC孰优孰劣直...
    Read More

    如何理解scanf和printf的第0个参数

    2022-10-22
    要理解scanf和printf的第0个参数,也就是所谓的格式化字符串,首先就要理解什么是格式化字符串。 什么是格式化字符串 格式化字符串,顾名思义,就是对相应内容的格式进行规定的字符串,放在scanf / printf里,就是对要输入/输出的内容应该是什么形式进行说明的一个模板。 知道了格式化字符串的概念,那么格式化字符串在scanf和printf有什么作用呢?下面我们就逐个讨论。 sca...
    Read More
    Views: Visitors: