C++ 如何将结构成员映射到字符串?

C++ 如何将结构成员映射到字符串?,c++,c++11,C++,C++11,在我的项目中,我必须调用一个第三方API,它将以结构的形式给出结果(下面的示例) typedef结构测试 { int状态1; bool状态2; std::病媒状态3; }内部测试; 类型定义结构测试 { int状态1; bool状态2; 内部测试内部状态; }试验; 一旦得到结果,我必须在内部设置这些值。结构中的每个值都将映射到某个字符串(这些字符串是内部更新值所必需的)。例如,映射可以如下所示: Test.Status1 <--> Status

在我的项目中,我必须调用一个第三方API,它将以结构的形式给出结果(下面的示例)

typedef结构测试
{
int状态1;
bool状态2;
std::病媒状态3;
}内部测试;
类型定义结构测试
{
int状态1;
bool状态2;
内部测试内部状态;
}试验;
一旦得到结果,我必须在内部设置这些值。结构中的每个值都将映射到某个字符串(这些字符串是内部更新值所必需的)。例如,映射可以如下所示:

Test.Status1                <-->    Status1
Test.Status2                <-->    Status2
Test.InnerStatus.Status1    <-->    Status3
Test.InnerStatus.Status2    <-->    Status4
Test.InnerStatus.Status3[0] <-->    Status5
Test.InnerStatus.Status3[1] <-->    Status6
Test.Status1状态1
测试状态2状态2
Test.InnerStatus.Status1状态3
Test.InnerStatus.Status2状态4
Test.InnerStatus.Status3[0]Status5
Test.InnerStatus.Status3[1]Status6
维护映射信息的最佳方法是什么。请注意,结构内部的向量大小可能会有所不同。例如,如果添加了新状态,我只想添加映射信息,即一些xml/config文件,代码应该可以正常工作,而不需要任何更改。我只是想要一些前进的指针。(仅供参考,如有必要,我可以使用boost库)

我试着尽可能简单地解释我的问题。如果需要更多细节,请在评论中询问我

@edited1

我可以将上述建议的映射信息保存在我的内部数据库中。但是,在此之后,我如何映射例如,
Test.Status1
应该采用值形式
Test.Status1
(结构变量)

@edited2

在我的例子中,大约有60个状态项。所以,我不想写
if/switch
语句来读取
struct
。还有比这更好的方法吗?

让我们来看看。
Test.Status1                <-->    Status1
Test.Status2                <-->    Status2
Test.InnerStatus.Status1    <-->    Status3
Test.InnerStatus.Status2    <-->    Status4
Test.InnerStatus.Status3[0] <-->    Status5
Test.InnerStatus.Status3[1] <-->    Status6