#include <iostream>
#include <map>
struct O
{
std::map<size_t,double(*)()> m;
double operator[](size_t index)
{
return m[index]();
}
};
double mydouble = 1.25;
double myFunction()
{
return mydouble;
}
int main()
{
O myArray;
myArray.m[2] = &myFunction;
std::cout << myArray[2] << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgoKc3RydWN0IE8KewogIHN0ZDo6bWFwPHNpemVfdCxkb3VibGUoKikoKT4gbTsKICBkb3VibGUgb3BlcmF0b3JbXShzaXplX3QgaW5kZXgpCiAgewogICAgcmV0dXJuIG1baW5kZXhdKCk7CiAgfQp9OwoKZG91YmxlIG15ZG91YmxlID0gMS4yNTsKCmRvdWJsZSBteUZ1bmN0aW9uKCkKewogIHJldHVybiBteWRvdWJsZTsKfQoKaW50IG1haW4oKQp7CiAgTyBteUFycmF5OwogIG15QXJyYXkubVsyXSA9ICZteUZ1bmN0aW9uOwogIHN0ZDo6Y291dCA8PCBteUFycmF5WzJdIDw8IHN0ZDo6ZW5kbDsKICByZXR1cm4gMDsKfQo=