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

时间:2018-08-20 06:09:45

标签: c++ c++11

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

typedef struct _innerTest
{
    int Status1;
    bool Status2;
    std::vector<int> Status3;
}InnerTest;

typedef struct _test 
{
    int Status1;
    bool Status2;
    InnerTest InnerStatus;
}Test;

一旦获得结果,就必须在内部设置这些值。结构中的每个值都将映射到某个字符串(这些字符串需要在内部更新值)。例如,映射可以如下所示:

Test.Status1                <-->    Status1
Test.Status2                <-->    Status2
Test.InnerStatus.Status1    <-->    Status3
Test.InnerStatus.Status2    <-->    Status4
Test.InnerStatus.Status3[0] <-->    Status5
Test.InnerStatus.Status3[1] <-->    Status6

维护映射信息的最佳方法是什么。请注意,结构内部向量的大小可以变化。例如,如果添加了新状态,我只想将映射信息添加到一些xml / config文件中,并且代码应该可以正常工作而不做任何更改。我只希望一些指针前进。 (仅供参考,如有必要,我可以使用boost库。)

我试图尽可能简单地解释我的问题。请在评论中问我是否需要更多详细信息。

@ edited1

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

@ edited2

就我而言,大约有60个状态项。因此,我不想编写if/switch语句来读取struct。有没有比这更好的方法了?

0 个答案:

没有答案