- : d(std::unique_ptr<wl_display, void (*)(wl_display *)>(
- wl_display_connect(NULL), wl_display_disconnect)),
- r(std::make_unique<registry>(d.get())) {}
+ : d(std::unique_ptr<struct wl_display,
+ std::function<void(struct wl_display *)>>(
+ wl_display_connect(NULL),
+ [](struct wl_display *d) {
+ logdebug("wl::display ~display @ %p", d);
+ wl_display_disconnect(d);
+ })),
+ r(!d ? nullptr : std::make_unique<struct registry>(d.get())) {}