const std::array meta = { % for m in meta: "${m.name}"s, % endfor }; const std::array interfaces = { % for i in interfaces: "${i.name}"s, % endfor }; const std::array properties = { % for p in propertynames: "${p.name}"s, % endfor }; const std::array groups = {{ % for g in propertygroups: // ${g.name} { % for p in g.members: ::Property{ interfaces[${p[0]}], properties[${p[1]}], meta[${p[2]}] }, % endfor }, % endfor }}; const std::array types = { % for g in propertygroups: "${g.datatype}"s, % endfor };