#include <iostream>
#include <map>
#include <experimental/any>
using namespace std;
int main() {
std::map<std::string,std::experimental::any> Map;
// заносим просто число
Map["0"] = 0;
std::cout << std::experimental::any_cast<int>(Map["0"]) << std::endl;
// заносим лямбду первого типа
auto LamOne = [&]()->int {return 1;};
Map["1"] = LamOne;
std::cout << std::experimental::any_cast<decltype(LamOne)>(Map["1"])() << std::endl;
// заносим лямбду второго типа
auto LamTwo = [&](bool i)->std::string {return (i) ? "positive":"negative";};
Map["2"] = LamTwo;
std::cout << std::experimental::any_cast<decltype(LamTwo)>(Map["2"])(true) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8ZXhwZXJpbWVudGFsL2FueT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICBzdGQ6Om1hcDxzdGQ6OnN0cmluZyxzdGQ6OmV4cGVyaW1lbnRhbDo6YW55PiBNYXA7CiAgCiAgLy8g0LfQsNC90L7RgdC40Lwg0L/RgNC+0YHRgtC+INGH0LjRgdC70L4KICBNYXBbIjAiXSA9IDA7CiAgc3RkOjpjb3V0IDw8IHN0ZDo6ZXhwZXJpbWVudGFsOjphbnlfY2FzdDxpbnQ+KE1hcFsiMCJdKSA8PCBzdGQ6OmVuZGw7CiAgCiAgLy8g0LfQsNC90L7RgdC40Lwg0LvRj9C80LHQtNGDINC/0LXRgNCy0L7Qs9C+INGC0LjQv9CwCiAgYXV0byBMYW1PbmUgPSBbJl0oKS0+aW50IHtyZXR1cm4gMTt9OwogIE1hcFsiMSJdID0gTGFtT25lOwogIHN0ZDo6Y291dCA8PCBzdGQ6OmV4cGVyaW1lbnRhbDo6YW55X2Nhc3Q8ZGVjbHR5cGUoTGFtT25lKT4oTWFwWyIxIl0pKCkgPDwgc3RkOjplbmRsOwogIAogIC8vINC30LDQvdC+0YHQuNC8INC70Y/QvNCx0LTRgyDQstGC0L7RgNC+0LPQviDRgtC40L/QsAogIGF1dG8gTGFtVHdvID0gWyZdKGJvb2wgaSktPnN0ZDo6c3RyaW5nIHtyZXR1cm4gKGkpID8gInBvc2l0aXZlIjoibmVnYXRpdmUiO307CiAgTWFwWyIyIl0gPSBMYW1Ud287CiAgc3RkOjpjb3V0IDw8IHN0ZDo6ZXhwZXJpbWVudGFsOjphbnlfY2FzdDxkZWNsdHlwZShMYW1Ud28pPihNYXBbIjIiXSkodHJ1ZSkgPDwgc3RkOjplbmRsOwogIAogIHJldHVybiAwOwp9