//TODO: Turn all local `constexpr is_nothrow` in the following functions into #define macros. The constexpr locals being used in a local class cause the compiler to segfault for some reason...
/// Create and opaque_handle from a data pointer and a lambda which handles the copying (if possible) and deleting of the object
constexprboolis_nothrow=std::is_nothrow_invocable_v<HandleF,T*,opaque_handle_operation>;//XXX: Causes segfault... TODO: turn these into a #define macro