假设我有一个像这样的结构或类似的类(C++):
struct str
{
int a = 5;
char b = 'x';
};
有没有办法枚举它的成员。我想找到成员的名字、值,如果可能的话还有数据类型。
我的目的是构建一个配置文件。所以我基本上必须以某种方式表示命令包结构。当实际数据到来时,我想将数据包与此配置文件进行比较,然后进行处理。所以有不同的命令类型。因此,每次数据包到来时,我都必须获取其操作码并使用结构名称对其进行检查,然后返回代表该数据包格式的适当结构。
我的想法是用结构来表示命令包格式。如果你能推荐其他数据结构来保存这个,那么也可以。语言可以是 C 或 C++。性能是重中之重,因此不鼓励使用 xml 和类似类型。首选内存数据结构。非常感谢任何帮助。谢谢
最佳答案
使用 boost.hana 的基于宏的伪反射:
#include <iostream>
#include <string>
#include <boost/hana.hpp>
struct Person
{
BOOST_HANA_DEFINE_STRUCT
(
Person
, (::std::string, name)
, (int, age)
);
};
int main()
{
Person john{"John", 30};
::boost::hana::for_each
(
::boost::hana::members(john)
, [](auto const & member)
{
::std::cout << member << ::std::endl;
}
);
return 0;
}
关于c++ - C/C++ 结构枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56074991/