Я пытаюсь вызвать функцию / атрибут члена класса на основе входной строки. Вот с чем я борюсь:
template <typename T>
class Signalling
{
public:
T value;
};
class Signals
{
public:
Signalling<bool> s1;
Signalling<int> s2;
};
void main(){
std::string name = "s1";
Signalling<int> value = 5; // this will have different types
Signals newSignal;
if (name == "s1")
newSignal.s1 = value;
else if (name == "s2")
newSignal.s2 = value;
// what I actually want to reach in some form is:
// newSignal.(name) = value !!??
}
Так что в основном мне нужно вызвать соответствующий член класса, имя которого совпадает с именем входной строки. Приведенный выше код работает с if / else, но, поскольку количество сигналов (здесь s1, s2 ..) слишком много, было бы невозможно go пройти через все случаи, и мне нужно найти обходной путь.
Я уже попробовал эту ссылку , но не смог запустить ее: \
Спасибо за любую помощь заранее.