Explain the possible way the compiler handles deletors as inline?

  c++, question

The problem of ch16.31 on cpp-primer5 cannot be understood.
If we use a custom delete DebugDelete with unique_ptr, explain the compiler’s possible way to treat the delete as inline.
This deleter is just a simple delete _ptr; It’s just.

#pragma once
 #include <iostream>
 class DebugDelete
 std::ostream &os;
 DebugDelete(std::ostream &io = std::cerr):os(io) {}
 template<class T>
 void operator()(T *ptr)
 os << "DebugDelete!  !  !"  ;
 delete ptr;

IQ can’t keep up, solve.

Simple functions defined within class are inline by default, otherwise only function pointers are passed. Function pointers can only jump.