Я хочу иметь возможность вызывать функции на основе данных, которые я читаю из файла. Поэтому для каждого типа элемента я хочу вызвать нужный метод чтения. Я написал этот код, но он не компилируется там, где я хочу добавить указатели функций на карту. Что случилось?
#include <vector>
#include <map>
#include <iostream>
class reader
{
std::map< std::string, void(*)()> functionCallMap; // function pointer
void readA(){ std::cout << "reading A\n";};
void readB(){ std::cout << "reading B\n";};;
public:
reader()
{
*functionCallMap["A"] = &reader::readA;*
*functionCallMap["B"] = &reader::readB;*
}
void read()
{
auto (*f) = functionCallMap["A"];
(*f)();
}
};
Я заполняю карту в Конструкторе.