私は「AcceleratedC++」という本を読んでいますが、演習の1つでは、ヘッダーの「equal」関数をエミュレートする必要があります。これまで、次の3つのパラメーターを使用する単純なバージョンを実装しました。
template <class iterType1, class iterType2>
bool cequal(iterType1 begin, iterType1 end, iterType2 e){
while(begin != end){
if(!(*begin == *e))
return false;
++begin;
++e;
}
return true;
}
そして4番目のパラメータを受け入れることができる2番目のバージョン...
template <class iterType1, class iterType2, class boolPred>
bool cequal(iterType1 begin, iterType1 end, iterType2 e, boolPred pred){
while(begin != end){
if(!pred(*begin, *e))
return false;
++begin;
++e;
}
return true;
}
私の質問は、これはそれを行うための理想的な方法ですか?または、これら2つの機能はマージ可能ですか?