【发布时间】:2014-01-17 00:02:00
【问题描述】:
假设我们有两种类
- 输入类
Input- 定义一个类型
result_type - 定义
set(result_type)
- 定义一个类型
- 一个输出类
Output- 定义一个类型
result_type - 定义
result_type get() const - 有许多
Input类作为成员变量,其输出依赖于这些变量
- 定义一个类型
给定一个输出类和几个输入类(任意数),考虑以下过程:
- 循环遍历每个输入类并使用适当的值(预先定义)调用
set() - 在输出类上调用
get()并收集结果。
这个过程可以看作是对一个函数的调用,该函数将输入值作为参数并返回输出值。
编写在一般情况下构造这样一个可变参数函数的函子。
约束是:C++(很可能是 C++11)、任意数量的可能不同 Input::result_types 的输入类。请注意,Input::result_type 不一定与Output::result_type 相关。目标首先应该是效率,但如果代码优雅易读,会有很大的好处。
详情:对于那些想知道Output 与Input 有何关系的人,可以想象Input 也有一个result_type get() const 方法,它返回您通过@ 提供的任何内容987654337@。 Output 然后有一个构造函数,它接受各种Inputs,并将它们(或它们的引用)存储为成员变量。 Output::get() 然后通过使用其输入的get() 方法的返回值进行一些数学运算,并返回一些Output::result_type 类型的结果。
【问题讨论】:
标签: c++ c++11 functor variadic-functions