Здравствуйте, kov_serg, Вы писали:
_>Если бы вы привели конкретный пример
Если предельно схематично, то как-то так:
enum ParameterType {
PT_MaxNumberOfLines,
PT_AllowedLineTypes,
PT_UniqueKey,
PT_LineConfig,
};
enum LineParameterType {
LPT_Id,
LPT_Name,
LPT_Dir,
};
...
MyMagicListType const ParameterList {
{ PT_UniqueKey, "12345-67890 },
{ PT_AllowedLineTypes, LT_Mic | LT_DigitalOutput | LT_Speakers },
{ PT_LineConfig,
{ LPT_Name, "line1" },
{ LPT_Id, 12 },
{ LPT_Dir, LD_Input },
},
{ PT_LineConfig,
{ LPT_Name, "line2" },
{ LPT_Id, 7 },
{ LPT_Dir, LD_Output },
},
{ PT_MaxNumberOfLines, 5 },
};
В родном синтаксисе почти все это есть, не хватает сущей мелочи — возможности размещения литеральных значений в "самоопределенном" виде, где каждый элемент снабжается заголовком "это элемент типа T", "это увеличение вложенности", "это уменьшение вложенности". А известные мне средства организации подобных описаний через шаблонную магию слишком громоздки и корявы, чтоб я мог заставить себя их терпеть.