1 const std::array<std::string, ${len(meta)}> meta = { 2 % for m in meta: 3 "${m.name}"s, 4 % endfor 5 }; 6 7 const std::array<std::string, ${len(interfaces)}> interfaces = { 8 % for i in interfaces: 9 "${i.name}"s, 10 % endfor 11 }; 12 13 const std::array<std::string, ${len(propertynames)}> properties = { 14 % for p in propertynames: 15 "${p.name}"s, 16 % endfor 17 }; 18 19 const std::array<GroupOfProperties, ${len(propertygroups)}> groups = {{ 20 % for g in propertygroups: 21 // ${g.name} 22 { 23 % for p in g.members: 24 ::Property{ interfaces[${p[0]}], properties[${p[1]}], meta[${p[2]}] }, 25 % endfor 26 }, 27 % endfor 28 }}; 29 30 const std::array<std::string, ${len(propertygroups)}> types = { 31 % for g in propertygroups: 32 "${g.datatype}"s, 33 % endfor 34 }; 35