(toppers-users 515) Re: TOPPERS/JSP のコンフィグレータ

Takayuki WAKABAYASHI takayuki @ ertl.ics.tut.ac.jp
2002年 9月 6日 (金) 13:07:15 JST


To: 高木さん

豊橋技術科学大学の若林です。

「デストラクタが例外を出すのは望ましくない」という問題ですが、色々調べて
みて何が問題なのかを把握しました。それと同時に、これまで非常識極まりない
マナー違反コードを公開していたことに恥ずかしくなりました。
 #C-Magazineのプログラミング禁じ手にも載ってますね。
 #仕様書(ISO/IEC:14882)も併読して、
 #一歩間違えると恐ろしいことになることが理解できました。

こういうコードは、「mallocしてfreeしないコード」みたいなもので、初心者に
は悪い影響を与え かつ 熟練者にはむずがゆい思いをさせることが往々にしてあ
ると思いますので、修正候補として盛り込みたいと思います (自らの勉強の意味
もかねて)。

これを機に皆さんにお聞きしたいのですが、
 「delete this;」はマナー違反でしょうか?
 #あまりtoppers-users向けではないとは思いますが、
 #コンフィギュレータ絡みということでひとつご容赦ください

COMを使っていると、Release時にリファレンスカウンタが0になると同時に自分
を破棄するコードを書く必要があるので、必然的に「delete this;」しないとい
けない状況が生じます。これのせいで「delete this;」に抵抗がなくなったよう
で、コンフィギュレータの中にも同処理を行っている部分があります(Directory
クラス)。良くも悪くもどう動くかを理解しているので、ある程度の制約の下で
なら実行上の問題は無いと判断しているのですが、マナー違反なのかどうかの判
断がつきません。

以上 ご意見頂ければ幸いです。
--------
  わかばやし たかゆき (mailto:takayuki @ ertl.ics.tut.ac.jp)