swap_by_value