给定:
template<typename T> class A {
B b;
std::vector<T> vec1;
std::vector<T> vec2;
}
我希望B有一个成员函数fill(),它接受对这两个向量的引用,并根据包含在b中的某些信息填充vec2的T值。
一种实现方法是为每个可能的参数T重载fill():
fill(const std::vector<float>& a, std::vector<float>& b)
等等,但这将意味着很多不必要的重复,因为操作对于每个可能的T都是相同的。在fill()内部,我可以使用vector::value_type进行计算,但我不知道如何声明它,以便它接受每种std::vector。显而易见的方法是使用带有模板的自由函数。有更简单的方法吗?