文章预览
作者 | Barry Revzin,C++ 标准委员会成员 翻译 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 我很喜欢做的一件事,就是比较不同编程语言如何解决相同的问题,尤其是当这些语言采取了截然不同的方法时,我觉得这非常具有教育意义。在这篇文章中,我们将尝试把反射(reflection)这一颠覆性的语言特性引入到 C++26 标准中。从根本上来讲,反射可以分为两大部分: 1、自省(Introspection):在编译期间,能够对程序进行查询的能力。 2、代码生成(Code Generation):让程序自动生成新代码的能力。 针对 C++26 的 P2996 提案是一个处理自省问题的核心提案,它为未来扩展反射功能奠定了基础,涵盖多个方向的延展功能(例如 P3294 的代码生成设计)。然而,虽然自省功能本身非常有用,但它只解决了一半的问题——知名 C++ 技术专家 Andrei Alexandrescu 甚至在 CppCon 大会上
………………………………