在 C++ 中实现 Object!
静态与动态 静态类型和动态类型这两个词语相信大家都不陌生了,区分二者的关键在于类型检查的时机。什么意思呢? ...
静态与动态 静态类型和动态类型这两个词语相信大家都不陌生了,区分二者的关键在于类型检查的时机。什么意思呢? ...
首先什么是元信息? 来看下面一段 python 代码,我们希望能够根据传入的字符串来自动修改对应的字段值 ...
Clang 是 LLVM 项目提供的一个 C 语言家族的编译器前端。它最初开发的目的是替代 GNU Compiler Collection (GCC) 的 C 语言前端,目标是提供更快的编译速度、更好的诊断信息和更灵活的架构。Clang 包含一个 C、C++ 和 Objective-C 编译器前端,这些前端设计为可以嵌入到其他项目中。Clang 的一个重要特点是其模块化架构,使开发者能够更轻松地扩展和定制编译器的功能。Clang 被广泛应用于许多项目,包括 LLVM 自身、一些操作系统内核的开发以及一些编程语言的编译器实现。 ...
引入 刚好拿最近的一个需求作为引入吧。我们都知道 markdown 可以用 lang 来填入代码块,并支持代码高亮。可是我想支持自己定义的代码高亮规则,遇到了如下问题: ...
What is Reflection? 反射 (Reflection) 这个词相信大家都不陌生了,也许你没用过但是你一定听过。然而,就像 CS 领域很多其他的惯用词一样,对于反射,并没有一个清晰而准确的定义。于是就会出现这种情况:对于 C#, Java, Python 这些拥有反射的语言,谈论到反射可以很自然的联想到对应语言中相关的设施,API 和代码示例,非常的具体。而对于 C, C++, Rust 这些没有反射的语言,当谈论起反射的时候,大家都不确定对方指的是什么,非常的不具体。比如有人告诉我说 Rust 有反射,他给出的例子是 Rust 的官方的文档中对 std::Any 模块 的介绍。里面提到了 ...
最近打算写一个系列文章详细讨论反射(reflection)这一概念,刚好 C++26 有了新的反射提案,发现知乎上又没有相关的文章,而这个话题又经常被讨论。所以借此机会来聊一聊属于 C++ 的静态反射(static reflection),作为系列预热了。 ...