There are certain containers I want to iterate over, and “do a thing” where the thing I do varies based on context.
The most natural way to express this is to pass a worker/visitor function into some kind of iteration.
Unfortunately, I cannot do this in Blueprints, because functions are not value types.
Let’s say I have five different UI widgets, assigned to five different member variables.
I’d love to be able to declare a function called “IterateWidgets,” that takes a function as argument, and calls that function with each of the widgets as argument in turn. Then, the bulky operation of “select each of the five member variables in turn” can be put into a single place, and the action taken would be passed in whenever I need to do a thing.
This would make adding a sixth UI widget much easier, because I only need to add that member variable to the “iterate over the things” function, rather than having to add it to every place where I might want to reference all-the-things.