Сопоставление с использованием типа struct не с экземпляром
Я реализовал отображение строки в структуру следующим образом.
Здесь я сопоставил требуемый ключ(строку) с экземпляром структуры(объектом).
Но я хочу сопоставить ключ(строку) с именем типа структуры, а затем получить значение из экземпляра этой структуры.
Main.cpp
#include <iostream> #include <string> using namespace std; #include "myfile.h" int main() { string item="IndicatorLED"; func (item); string item1="AssetTag"; func(item1); string item2="ManagerType"; func(item2); string item3="Count"; func(item3); }
файл myfile.ч
#ifndef MYFILE_H #define MYFILE_H #include <iostream> #include <algorithm> #include<vector> #include <string> #include <map> using namespace std; struct Chassis { string InLED; string AstTg; }; struct Manager { string MngrType; int count; }; const Chassis chassis1 = {"On", "null"}; const Manager manager1 = {"BMC", 23}; const map<string, const string> cha1 = { { "IndicatorLED", chassis1.InLED }, { "AssetTag" , chassis1.AstTg }, { "ManagerType" , manager1.MngrType } }; const map<string, int> cha2 = { { "Count", manager1.count } }; void func(string); #endif
myfile.cpp
#include <iostream> #include <string> #include "myfile.h" #include <map> using namespace std; void func(string item) { if (cha1.find(item) == cha1.end()) { if (cha2.find(item) != cha2.end()) { cout << item << ":" << cha2.at(item) << endl; } } else { cout << item << ":" << cha1.at(item) << endl; } }
Теперь здесь я сопоставил `string` с `chassis1.InLED`.
Мой вопрос заключается в том, есть ли какая-либо возможность сопоставить строку с "шасси" (типом структуры) и теперь получить ключ значения из экземпляра этой структуры.
Что я уже пробовал:
У меня нет никакой идеи реализовать сопоставление между строкой и типом структуры (именем) и получить соответствующее значение экземпляра из этого экземпляра структуры.