Q:

How does overloading function call work in C++? 

I read that function call () can also be overloaded.  http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B
What would the following mean?  
It works. 
template<typename T, typename Comp>
struct bind{
    T v;
    Comp comp;
    bool operator()(const T& b){
        return comp(b,v);
    }
};

int main(){
    bind<int, less<int> > b;
    b.v = 2;
    cout << b(3) << "\n";
}

A:

It means that if you create an object of type bind<>, you can apply the function-call operator to that object. 
Like this:
bind<int, std::less<int>> b;
b.v = 2;
std::cout << b(1) << "\n";

That snippet might print "true" on the standard output.