【发布时间】:2009-10-28 23:19:42
【问题描述】:
给定:
template<typename T> class A {
B b;
std::vector<T> vec1;
std::vector<T> vec2;
}
我希望 B 有一个成员函数 fill(),它引用向量的引用,并根据 b 中包含的一些信息用 T 的值填充 vec2。
一种方法是为每个可能的参数 T 重载 fill():
fill(const std::vector<float>& a, std::vector<float>& b)
等等,但这将意味着很多不必要的重复,因为每个可能的 T 的操作都是相同的。在 fill() 内部,我可以使用 vector::value_type 进行计算,但我不知道如何声明它以这样一种方式,它需要每一种 std::vector。显而易见的方法是使用带有模板的免费功能。有没有更简单的方法?
【问题讨论】: