#include <cmath>
#include <functional>
#include <map>
#include <string>
#include <iostream>
typedef double(*mathFunc)(double);
int main() {
std::map< std::string, mathFunc > funcMap;
funcMap[std::string( "sqrt")]= std::sqrt;
double sqrt2 = (funcMap.at("sqrt"))(2.0);
std::cout << "Result: "<< sqrt2 << std::endl;
return 0;
}
I2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdHlwZWRlZiBkb3VibGUoKm1hdGhGdW5jKShkb3VibGUpOwoKaW50IG1haW4oKSB7CiAgICBzdGQ6Om1hcDwgc3RkOjpzdHJpbmcsIG1hdGhGdW5jID4gZnVuY01hcDsKCiAgICBmdW5jTWFwW3N0ZDo6c3RyaW5nKCAic3FydCIpXT0gc3RkOjpzcXJ0OwoKICAgIGRvdWJsZSBzcXJ0MiA9IChmdW5jTWFwLmF0KCJzcXJ0IikpKDIuMCk7CgogICAgc3RkOjpjb3V0IDw8ICJSZXN1bHQ6ICI8PCBzcXJ0MiA8PCBzdGQ6OmVuZGw7CiAgICByZXR1cm4gMDsKfQ==