std::unique_ptr でポインタがそのまま使える場合のデリータ指定(関数オブジェクト版)
struct file_deleter { void operator()(FILE* fp) const { fclose(fp); } }; std::unique_ptr<FILE, file_deleter> ptr(fopen("hoge.txt", "w"), file_deleter());