Domanda

Ho una sezione di uno schema per un modello che ho bisogno di analizzare. Diciamo sembra simile alla seguente.

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

Le proprietà sono:

  1. Gli elementi possono apparire non ordinata.
  2. Tutti gli elementi che fanno parte dello schema deve apparire, e nessun altro.
  3. Tutti gli attributi sintetizzati gli elementi andare in una struct.
  4. (opzionale) La potenza dello schema in futuro dipendono dal tipo di campo - cioè, campi differenti in base al tipo - ma io non sono preoccupato per questo al momento.
È stato utile?

Soluzione

Secondo i forum Spirito, quanto segue è la risposta.

  

Si potrebbe desiderare di avere uno sguardo alla   permutazione parser:

a ^ b ^ c 
     

Il che corrisponde a una o B o C (o di una   loro combinazione) in qualsiasi sequenza.

Se l'obiettivo è quello di analizzare in una struttura, che il modo migliore per previsioni prova tutte essenziali sono stati inizializzati, i membri della struttura deve essere avvolto con boost::optional<> La presenza attributo può quindi essere facilmente testato post-analisi in fase di esecuzione .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top