能否计算出lambda的参数类型和返回类型?
lambda_traits
auto lambda = [](int i) { return long(i*10); };lambda_traits<decltype(lambda)>::param_type i;
//i should be intlambda_traits<decltype(lambda)>::return_type l; //l should be longlambda_traits
template<typename TLambda>void f(TLambda lambda){
typedef typename lambda_traits<TLambda>::param_type P;
typedef typename lambda_traits<TLambda>::return_type R;
std::function<R(P)> fun = lambda; //I want to do this!
//...}std::function
template<typename T>A<T> f(std::function<bool(T)> fun){
return A<T>(fun);}f([](int){return true;}); //errorTLambdastd::function
繁花不似锦
守着一只汪
动漫人物
随时随地看视频慕课网APP
相关分类