[c++] What are C++ functors and their uses?