【发布时间】:2021-04-06 23:36:48
【问题描述】:
我需要一个生成其他函数的函数。为什么以下不让我将lambda 转换为std::function?我以前做过。
#include <iostream>
#include <functional>
std::function<int()> funcGen(int param) {
std::function<int()> myGeneratedFunc =
[param](int input) -> int {
return input+param;
};
return myGeneratedFunc;
}
int main() {
std::function<int()> myFunc = funcGen(3);
std::cout << "this should be 4=3+1: " << myFunc(1) << "\n";
return 0;
}
在ideone 上出现以下错误:
error: conversion from ‘funcGen(int)::<lambda(int)>’ to non-scalar type ‘std::function<int()>’ requested
【问题讨论】:
-
在哪一行?来自 main 还是来自函数?
标签: c++ lambda std-function