首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++11反射库

C++11反射库
EN

Stack Overflow用户
提问于 2010-11-21 00:27:15
回答 4查看 15.3K关注 0票数 17

我现在要用c++11写一个大项目。

我正在寻找一些好的c++11/c++反射库,我找到了几个不同的库,但它们中的大多数在过去几年里都没有更新过,或者它们的功能非常有限。

你能告诉我有没有很好的c++1/c++的反射类库?(我希望有静态和动态反射,尽可能多地了解有关方法、类等的信息,可以动态添加和访问方法等。)

或者,也许c++11提供了一些额外的功能来帮助更好地设计反射库,我应该自己编写它吗?(不过我还没有找到关于它的信息。)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-21 01:20:01

C++确实不是最好的反射语言。C++0x并没有真正改变这一点。使用类型特征可以获得对静态反射的有限支持,甚至可以使用SFINAE静态地确定某个类是否具有特定的成员函数或成员变量。但事实就是这样。

动态反射是非常有限的。您可以在运行时使用<typeinfo>工具获取类的类型,但仅此而已。

至于静态反射,在没有严重妥协的情况下,通用地迭代类并获取每个成员变量/函数的能力是不可能的。Boost.Fusion通过提供允许您将对象绑定到类似元组的容器的宏来实现这一点。实际上,std::tupleboost::tuple类自然提供了编译时反射-换句话说,您可以在元组上静态迭代并确定每个成员的类型。这为您提供了类似于任意聚合类型上的编译时反射。不幸的是,它并不像对任意类内置的本机反射支持那样方便。

票数 9
EN

Stack Overflow用户

发布于 2010-11-21 00:39:47

似乎有一个库可以满足您的“广泛”需求。看看镜像:Boost.Mirror。请注意,它正式不是boost的一部分。您还可以看看其他库:Reflective Programming

票数 5
EN

Stack Overflow用户

发布于 2010-11-21 01:25:30

QT有一种原始的反射形式,你可能想试一试它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4233711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档