4

对于需要解析的模型,我有一部分模式。可以说它如下所示。

{
  type = "Standard";
  hostname="x.y.z";
  port="123";
}

属性是:

  1. 元素可能看起来是无序的。
  2. 作为模式一部分的所有元素都必须出现,不能出现其他元素。
  3. 所有元素的综合属性都进入一个结构。
  4. (可选)模式将来可能取决于类型字段——即基于类型的不同字段——但是我目前并不关心这个。
4

1 回答 1

4

根据精神论坛,以下是答案。

您可能想看看排列解析器:

a ^ b ^ c 

以任何顺序匹配 a 或 b 或 c(或其组合)。

如果目标是解析成一个结构,那么测试天气的最佳方法是所有基本成员都已初始化,结构成员应该用包装boost::optional<>。然后可以在运行时轻松地在解析后测试属性存在。

于 2010-02-02T16:28:41.543 回答