Самый простой подход к нам, старомодным типам, - написать функцию:
int call_it() {
return tempModel->GetTemp();
}
и сохранить эту функцию на карте в вопросе:
map<string, GetIntFunction> get_integer_map {
{ "temp", call_it }
};
Более новый подходиспользовать лямбду:
map<string, GetIntFunction> get_integer_map {
{ "temp", [=]() { return tempModel->GetTemp(); }
};
Другой подход (как это было предложено в комментарии Камиля Цука) - использовать std::function
для привязки объекта и функции:
map<string, std::function<int()>> get_integer_map {
{ "temp", std::function<int()>(&TemperatureModel::GetTemp, tempModel) }
};
Внимание: код написан, но не скомпилирован;могут быть ошибки.