why do I get the error cannot deduce template argument for Comparable? I don't see where i went wrong (duh). Comparator comp is a functor used to compare two items while sorting.

Code:
template <class Iter, class Comparable, class Comparator>
void insertionSort( Iter begin, Iter end, Comparator comp)
{
    for(Iter p = begin+1; p != end; p++ )
    {
        Comparable tmp = *p;
        Iter j;

        for( j = p; j != begin && comp(tmp, *(j-1)); --j )
            *j = *(j - 1);
      *j = tmp;
    }
}


// My main call looks like this. assume that everything prior is done right
// including declarations of variables. LessThanByIDnum() is the functor that im trying
// to use

   insertionSort(people.begin(), people.end(), LessThanByIDnum() );
What am I doing wrong?

edit:

Well now i see that the compiler will not recognize what type Comparable should be. What is a reasonable way to solve this problem?

Thanks in advance

btw, im trying to work with maps.