The type of the target function is allowed to be const qualified or a reference.
Const qualification is preserved and propagated appropriately (in other
words, only const versions of operator() can be used
if the target function object is const - or, in case the target function
object is held by value, the adapter is const).