std::move should not be used here because
it prevents RVO (copy elision) and it's
considered an anti-pattern.
To fix the original warning the returned
type must match the declared return
type or copy elision will not be possible
(and the warning will be triggered).