gpt4 book ai didi

C++11 反射库

转载 作者:IT老高 更新时间:2023-10-28 22:13:39 26 4
gpt4 key购买 nike

我目前打算用 c++11 编写大项目。

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

你能告诉我是否有一个非常好的 c++1/c++ 反射库吗? (我想要静态和动态反射,尽可能多地了解有关方法、类等的信息,可以动态添加和访问方法等)

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

最佳答案

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

动态反射受到严重限制。您可以在运行时使用 <typeinfo> 获取类的类型。设施,但仅此而已。

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

关于C++11 反射库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4233711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com