サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
RAII - Resource Acquisition Is Initialization リソース漏れを防ぐためのC++のテクニックの一つであるRAIIについてちょっとだけ。 この前のtutorialogでちょうどいいコードがあったのでそれを元に説明します。 test.cppの一部に以下のような記述があります。 test.cpp ... for (qitr = factory.begin(); qitr != factory.end(); qitr++) { QueryNormalizer *qn = (*qitr)(); qn->process((char **) &query); delete qn; } ... *qitrがfactory methodライクなオブジェクト生成関数で、*qitrの内部で生成したQueryNormalizerを継承したクラスのインスタンスをqnが指
RAII と setjmp/longjmp C++ には RAII (Resource Acquisition Is Initialization) というイディオムがあります。これはリソースの開放を確実に行うためのテクニックとして C++ のプログラムで広く用いられています。しかし、RAII も setjmp/longjmp という落とし穴があります。 RAIIの基本 次のプログラムはメモリリークを起こします。 #include <string> using namespace std; int main() { string *p = new string; return 0; } このプログラムをビルドして valgrind でテストすると次のようなエラーメッセージが表示されます。4バイトのメモリリークが検出されました。 % g++ test.cc % valgrind ./a.ou
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く