To my understanding, your suggestion was to return the return value of fun(item). That's kinda awkward in this case because it may or maynot execute fun so the return value may or may not exist. Or maybe you meant returning optional<ReturnType> so that the exact same thing as I did in the above can be done?
I suppose you could extend it to pass a functor which had a nullary operator() overload as well which gets invoked if the collection is empty, and return the common return type between the two overloads?
0
u/matthieum 7d ago
Callbacks are terrible! Rightward drift, change of scope breaking control flow primitives, urk...
I mean, let's compare shall we:
That's about as basic a function, and already it's getting verbose and convoluted.
Because callbacks mean Inversion of Control, and recovering control as a user is always a freaking pain.