#pragma once #include <concepts> namespace eng { template <typename F, typename T> concept UnaryFunc = std::invocable<F, T>; template <typename T, auto F> struct Deleter { void operator()(T *x) const { F(x); } }; } // namespace eng