detail/type_traits.hpp can include `<utility>` instead of `<functional>` for access to `std::reference_wrapper` on C++20 and later