Renaming template arguments
Removing unconditional std::move()
Removed wrong constexpr