У меня есть boost :: function pointer's хранится в std :: map. Это указывает на лямбда-функции. Как я могу получить возвращаемый тип?Тип возвращаемого значения функции лямбда-функции
#include "main.h"
#include <typeinfo>
typedef std::map<std::string,boost::function<int (A*)>> str_func_map;
int main()
{
str_func_map mapping;
mapping["One"] = [](A *a) {return a->one();};
mapping["Two"] = [](A *a) {return a->two();};
mapping["B_Nine"] = [](A *a) {return a->getB().nine();};
A aa = A();
A* a = &aa;
for (str_func_map::iterator i = mapping.begin(); i != mapping.end(); i++)
{
std::cout<< i->first << std::endl;
std::cout<< (i->second)(a) << std::endl;
typedef decltype(i->second) type; //How can I print out the return type of
//the function pointer???
}
system("pause");
}
erm не всегда ли int? – Nim