【发布时间】:2009-09-30 10:32:27
【问题描述】:
为了获得一个“更容易记住”的界面 索引生成函数 std::distance(a,b),我想出了 更好地区分它的论点的想法 (当用于向量的基础时: vec.begin() ) 通过使用向量调用模板函数 及其迭代器,例如:
std::vector<MyType> vect;
std::vector<MyType>::const_iterator iter;
...
...
size_t id = vectorindex_of(iter, vect);
从不混淆顺序的基本原理 论点;-)
上述想法的明确表述将 读某事。喜欢
template <typename T>
inline
size_t vectorindex_of(
typename std::vector<T>::const_iterator iter,
const std::vector<T>& vect ) {
return std::distance( vect.begin(), iter );
}
...可行但看起来很尴尬。
我希望模板机制隐式推断类型 喜欢(伪代码):
template <typename T>
inline
size_t vectorindex_of(T::const_iterator iter, const T& vect) {
return std::distance( vect.begin(), iter );
}
...这是行不通的。但是为什么呢?
【问题讨论】: