Hi, welcome to the forum.
Couple of things wrong here.
First, to be able to pass a method like this it needs to be static, otherwise there's no instance to run it on.
Second, to save you from unnecessary copies it should take the string as a const reference, not by value.
Third, similar to above, to save yourself from copies where not needed you should use a const reference in the foreach variable declaration.
Next, The return type of the function you pass should be the type of the element of the container, not the container itself i.e. QString in this case.
And last but not least - the call to map() is not blocking, so it will return immediately and the function will exit. You passed a local string list to it so it means the asynchronous calls will operate on freed memory and most likely crash. If you want to wait for the results you should rather use blockingMap() instead and if not then you need to store that string list somewhere for the whole duration of the map() execution.