Why use `std::default_delete` instead of `delete`?