fooA()
現在、引数として特定のコンテナ、たとえば、を期待する(本文を気にしない)のようなコードで立ち往生してvector<double>
います。
double fooA(std::vector<double> const& list)
{
return list[0];
}
ここで、代わりにイテレータを一般化して使用したいと思います。
template<typename InputIterator>
double fooB(InputIterator first, InputIterator last)
{
return *first;
}
fooB()
イテレータが反復する必要があることをどのように述べるのdouble
ですか?
誰かが、vector<string>::iterator
または、警告なしにコンパイルされる可能性があるため、さらに悪いことに、を渡す可能性がありますvector<int>::iterator
。