Remove excessive use of && and std::forward