Fix compiler warnings caused by std::unary_function
This MR removes almost¹ all uses of the templates std::unary_function
and std::binary_function
.
These templates are deprecated in C++17 and generate lots of compile warnings on gcc 12.1.0.
Additionally, I got rid of an inefficient map storing precomputed bit masks. The CPU can shift bits much faster than it can read from memory.
¹ – the remaining uses of these templates are being taken care of by @pbs3141 in !4463 (merged)