#include <iostream>
#include<unordered_map>
#include<string>
#include<vector>
#include <functional>
using namespace std::placeholders;
class Test {
public:
Test() {
_state_function_map[0] = std::bind(&Test::state_function, _1, _2);
}
void test_function() {
auto it = _state_function_map.find(0);
int result = it->second(*this, 0.0);
}
private:
int state_function(const double value) const {
// return something
return 4;
}
private:
using func_type = std::function<int(const Test&, const double)>;
std::unordered_map<int, func_type> _state_function_map;
};
int main()
{
return 0;
}