#include <memory>
#include <typeinfo>
#include <iostream>
auto foo()
{
auto type = [] (void*) {};
return std::unique_ptr<void, decltype (type)> { nullptr, type };
}
int main()
{
std::cout << typeid (foo ()).name () << std::endl;
}
I2luY2x1ZGUgPG1lbW9yeT4KI2luY2x1ZGUgPHR5cGVpbmZvPgojaW5jbHVkZSA8aW9zdHJlYW0+CgphdXRvIGZvbygpCnsKCWF1dG8gdHlwZSA9IFtdICh2b2lkKikge307CglyZXR1cm4gc3RkOjp1bmlxdWVfcHRyPHZvaWQsIGRlY2x0eXBlICh0eXBlKT4geyBudWxscHRyLCB0eXBlIH07Cn0KCmludCBtYWluKCkKewoJc3RkOjpjb3V0IDw8IHR5cGVpZCAoZm9vICgpKS5uYW1lICgpIDw8IHN0ZDo6ZW5kbDsKfQ==