The parameter f was taken by l-value reference and then moved. Its a small issue because its being called in a spot where the value was copied anyway. Should this be a template argument + forwarded to prevent a possible refactor issue?