Scooby_STEntry is a class (with page as one of its members), signature_table is a deque of pointers to objects of class Scooby_STEntry and page is also a local variable.
I understand that the third parameter in the find_if method is a unary function but I can't understand that bit of code as in how it works.
My end goal is to translate this bit of code in Python, but just an explanation would do too.
Scooby_STEntry *stentry = NULL;
auto st_index = find_if(signature_table.begin(), signature_table.end(), [page](Scooby_STEntry *stentry){return stentry->page == page;});