【发布时间】:2012-11-20 02:52:55
【问题描述】:
是否有更标准的方法将参数应用于函数范围?我想出了下面列出的解决方案,但感觉不对 - 应该已经有一些东西可以构建这样的逻辑。
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 的解决方案的评论。
【问题讨论】:
-
我不太明白这个问题。
in和out是什么?什么是apply_argument(类模板的一个实例,但带有什么模板参数?)?