是否有一些更标准的方法可以将参数应用于函数范围?我想出了下面列出的解决方案,但感觉不对 - 应该已经有一些东西可以构建这样的逻辑。
template<typename Function, typename Result, typename Argument>
struct apply_argument_t {
Argument x;
Result operator () (Function f) {
return f (x);
}
};
因此,一个简单的用例:
transform (in.begin(), in.end(), out.begin(), apply_argument(x));
我故意跳过了实现细节。
编辑:但无论如何,正如他们被要求的那样:
in
是一系列一元函数(例如vector<int(*)(char)>
)
out
是这些一元函数结果的范围(例如vector<int>
)
apply_argument
类似于结构,但没有模板规范和初始化(例如apply_argument_t<int(*)(char), int, char>
)
我也错过了没有搜索 C++11 解决方案的评论。