C++ HANA获取所有成员名称并迭代

C++ HANA获取所有成员名称并迭代,c++,boost,boost-hana,C++,Boost,Boost Hana,我有Java/C的背景,作为一名BOOST新手,我很难得到一份类成员的列表 我有以下结构/类 class Configurations { public: BOOST_HANA_DEFINE_STRUCT(Configurations,(float,c),(float,b)); }; Configurations configs; 我已经到了可以迭代键/值对的地步,但我不知道如何简单地获取一个成员变量名列表作为字符串,以检查该成员是否存在于结构/类中。我需要维护一个单独的std::

我有Java/C的背景,作为一名BOOST新手,我很难得到一份类成员的列表

我有以下结构/类

class Configurations 
{
public:
    BOOST_HANA_DEFINE_STRUCT(Configurations,(float,c),(float,b));
};
Configurations configs; 
我已经到了可以迭代键/值对的地步,但我不知道如何简单地获取一个成员变量名列表作为字符串,以检查该成员是否存在于结构/类中。我需要维护一个单独的std::map,它保留类/结构的所有成员名称,以便稍后检查是否有某个成员退出。我知道我可以使用下面的for_并保存名称,但是有更好的方法吗

 boost::hana::for_each(configs, [](auto pair)
{
std::cout << boost::hana::to<char const*>(boost::hana::first(pair)) << ": "<< boost::hana::second(pair) << std::endl;
// Push the name into the std::map here
});    
    
boost::hana::for_each(配置,[](自动配对)
{

std::你能在没有反射库的情况下编写traits
has_c
(与c++11一样)吗?让我检查一下有几个帖子是关于检测成员习惯用法的(即使是c++98)(但名称不是来自(运行时)字符串)。