Refactor
Refactor
Use universal references to pass functors
Ensure noexcept defaulted move operations
Add note
Improve move