如何检查来自boost :: fusion的结果:at_key?

时间:2014-06-09 15:26:45

标签: c++ boost boost-fusion

来自boost教程的示例:

using namespace fields;
std::string person_name = at_key<name>(a_person);
int person_age = at_key<age>(a_person);

如何检查此地图中是否没有这样的密钥?

1 个答案:

答案 0 :(得分:1)

要检查给定序列是否包含与给定Key相关联的元素,可以(并且应该)使用has_key<Key> (seq),如下例所示。

if (has_key<fields::age> (some_seq)) {
  int person_age = at_key<fields::age> (some_seq);
}

文档: