将私有删除器函数包装在结构中的目的是什么?

I've been trying to understand an answer to a different question and for the most part I think I do. However, what is the purpose of wrapping the private deleter_fn in a struct?

为了方便起见,下面是我正在查看的代码:

class C {
public:
  void foo() {
    underlying_foo(handle.get());
  }

  void bar() {
    // transfers ownership
    underlying_bar(handle.release());
  }

  // use default copy/move constructor and assignment operator

private:
  struct deleter {
    void operator()(T* ptr) {
      deleter_fn(ptr);
    }
  };
  std::unique_ptr<T, deleter> handle;
};

为什么不只是:

...
private:

    void operator()(T* ptr) {
      deleter_fn(ptr);
    }
  std::unique_ptr<T, deleter> handle;
};