以下の様に、ファイルストリームの所有権を
スマートポインタに与えたいのですが、resetでエラーが出てしまいます。
std::streamをFILEに変更して同様のコードを組んだ場合、
正常に動作しました。
std::fstreamは、使えないのでしょうか?
C++
1#include <fstream> 2 3int main() 4{ 5 std::shared_ptr<std::fstream> file; 6 7 std::fstream openfile; 8 9 openfile.open(__FILE__, std::ios::in ); 10 11 if (false == openfile.is_open()) 12 { 13 return 0; 14 } 15 16 file.reset(openfile); 17}
以下、FILEに置き換えたバージョン
C++
1int main() 2{ 3 std::shared_ptr<FILE> file; 4 5 FILE* openfile; 6 openfile = fopen(__FILE__, "r"); 7 8 file.reset(openfile); 9}
回答1件
あなたの回答
tips
プレビュー