- 1 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 00:03:49.04 ID:Hj6igpz/.net]
- 次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ: C++相談室 part127 echo.2ch.net/test/read.cgi/tech/1474636291/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 echo.2ch.net/test/read.cgi/tech/1478440682/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) ■ shared_ptr で 標準ライブラリのFILE構造体ポインタをラップしよう class FILE_Ptr : public shared_ptr<FILE> { struct FILEDeleleter { void operator() (FILE* fp) const { if (fp != NULL) { fclose(fp); }} }; public: FILE_Ptr(FILE* fp = NULL) : shared_ptr<FILE>(fp, FILEDeleleter()) {} operator FILE* () { return get(); } template<typename T> bool operator == (const T& obj) const { return get() == reinterpret_cast<FILE*>(obj); } template<typename T> bool operator != (const T& obj) const { return get() != reinterpret_cast<FILE*>(obj); } };
|

|