具有C ++库函数的智能指针

时间:2019-04-15 09:35:44

标签: c++ smart-pointers

我刚刚开始使用智能指针,并想将它们集成到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 {
  ...
}

0 个答案:

没有答案