23 std::shared_ptr<void> ptr;
26 DataPtr(
void* data_ptr, std::function<
void(
void*)> dealloc)
27 : ptr(data_ptr, [dealloc](
void* data) {
30 }
catch (
const std::exception& e) {
31 std::cerr <<
"DataPtr deleter error: " << e.what() <<
"\n";
33 std::cerr <<
"DataPtr deleter threw non-std::exception\n";
37 void* data()
const {
return ptr.get(); }