#include <memory>
#include <iostream>
struct FileDeleter {
void operator()(FILE* fp) const {
if (fp) { std::cout << "closed"; fclose(fp); }
}
};
int main() {
std::unique_ptr<FILE, FileDeleter> fp(fopen("/dev/null", "r"));
std::cout << "opened ";
std::cout << " done";
}
