我刚刚开始使用智能指针,并想将它们集成到File Wrapper类中,在该类中我使用了函数f_opens(FILE** )
和fclose(FILE* )
,
但是我找不到将std::shared_ptr<FILE> m_fp
对象传递给f_opens函数的方法,因为fclose(m_fp.get())
非常简单
我也不想做任何混乱的事情,因为该函数使用原始指针,而我使用的是智能指针,可能导致任何东西中断/泄漏。
编辑: 我找到了解决问题的方法
FILE* tmp;
shared_ptr<FILE> fp;
if(fopen_s(&tmp ......) == 0) {
fp = shared_ptr<FILE>(tmp, std::fclose);
} else {
...
}