Я отвечал на этот вопрос.И я понял, что у меня оторвался рот, когда я не знал, о чем говорю.
Так что мой вопрос таков.Можно ли объединить эти функции в одну?(не беспокойтесь, что это точная копия уже существующей функции, я просто использую ее в качестве примера)
template <class iterType1, class iterType2, class boolPred>
bool equal(iterType1 begin, iterType1 end, iterType2 e, boolPred pred){
while(begin != end){
if(!pred(*begin, *e))
return false;
++begin;
++e;
}
return true;
}
template <class iterType1, class iterType2>
bool equal(iterType1 begin, iterType1 end, iterType2 e){
return equal(begin, end, e, std::equal_to<decltype(*begin)>());
}
Кроме того, повторно используется код из первого ввторое возможно даже без использования функций C ++ 0x (decltype).