no need for a custom deleter we can use a function lvalue instead