An implementation must override this function to implement filtering functionality. This is named different and doesn't use function overloading due to C++ name resolution issues which prevent calling base class functions of the same name (even with different signatures) from a pointer to the derived class.