【发布时间】:2020-08-24 11:22:13
【问题描述】:
我正在创建一个允许用户评估函数列表的 c++ 库。例如,用户将提供三个功能
A mapper1(B);
B mapper2(C);
C mapper3(D);
我将根据输入 D 列表评估它们,检索 A 列表。
功能列表由用户提供。它在编译时是已知的,但我不知道。我该如何实现,例如,我应该使用什么数据结构来维护函数列表?
用户使用模板 API 提供功能:
template <typename T>
class Mapper {
public:
unique_ptr<Mapper<N>> map(function<N(T)>);
}
【问题讨论】:
-
只是为了确定,你想要这样的东西:
Mapper m{ [](auto v) { return v * v; }, [](auto v) { return 2 * v; }, }; auto result = m(1,2,3); // result should be : 2, 4, 6 => 4, 16, 36 -
@ElvisOric 是的,这就是我想要的
标签: c++ lambda functional-programming