16/11/27 00:03:49.04 Hj6igpz/.net
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ:
C++相談室 part127 スレリンク(tech板)
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.100【環境依存OK】 スレリンク(tech板)
■長いソースを貼るときはここへ。■
URLリンク(codepad.org)
URLリンク(ideone.com)
[C++ FAQ]
URLリンク(isocpp.org)
URLリンク(www.bohyoh.com) (日本語)
■ 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); }
};