removed trailing return type since they can be problematic in msvc:
Manual type deduction for select_many