首页 > 试题广场 >

以下关于std::unique_ptr自定义删除器的代码,输

[单选题]
以下关于std::unique_ptr自定义删除器的代码,输出是什么?
#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";
}

  • opened closed done
  • opened done
  • opened done closed
  • 编译错误

这道题你会答吗?花几分钟告诉大家答案吧!