error de función no coincidente utilizando parámetros de plantilla de plantilla en una función

Estoy tratando de definir una función usando parámetros de plantilla de plantilla (solo quiero saber cómo funciona). Tengo los siguientes

<code>template <typename T, template <typename> class Cont>
typename Cont<T>::iterator binary_search (typename Cont<T>::iterator first, typename Cont<T>::iterator last)
{
    typename Cont<T>::iterator it;
    // ...
    return it;
}
</code>

Entonces en elmain () función:

<code>std::vector<int> data;

// ....

std::vector<int>::iterator it = binary_search (data.begin (),data.end ());
</code>

Recibo este error al intentar compilar el código:

<code>binary_search.cpp: In function ‘int main(int, char**)’:
binary_search.cpp:43:83: error: no matching function for call to ‘binary_search(std::vector<int>::iterator, std::vector<int>::iterator)’
</code>

No puedo encontrar ninguna respuesta adecuada que me ayude a solucionar este error. Cualquier ayuda sería apreciada.

Gracias por adelantado

Respuestas a la pregunta(1)

Su respuesta a la pregunta