#include <iostream>

template<class T, class F>
bool foo(T&& a, T&& b, F&& f)
{
    return f(a, b);
}

bool cmp(int a, int b)
{
    return a == b;
}

int main()
{
    std:: cout << std::boolalpha << "3 == 5 --> " << foo(3, 5, cmp) << std::endl;
    
}