このセクションが、初めて読む人に邪魔になって申し訳ありません。 目次にとばしたり、直接 スタートガイド や リファレンスマニュアル、 FAQ に行きたいかもしれません。 このセクションは、最近の更新をチェックするのが簡単になるようにトップに設けています。
nsCOMPtr
に対する最近の更新
新しいものから順に
-
nsCOMPtr
と生のポインタ(もしくはリテラル 0 や nsnull)の間の==
と!=
がすべてのコンパイラで正しく働くようにしました。バグ 65664 を参照してください -
getter_AddRefs( nsCOMPtr& )
に対して、簡単な代入式が行うのと同じ [[Using_nsCOMPtr:Reference_Manual#型の保護手段|type-safety check] を適用します。 -
do_CreateInstance
を追加しました。 -
do_GetService
を追加しました。 -
nsISupports**
が必要な時にgetter_AddRefs
をキャストする必要性がなくなりました。 -
nsCOMPtr<nsISupports>
の不変性を緩和したので、 任意の [XP]COMインタフェースへのポインタを使うことができるようなりました。 -
nsIWeakReference
を簡単に使えるように、do_QueryReferent
を追加しました。
nsCOMPtr
の計画
- バグ 59212: 私たちがより多くのコンパイラでテストできるようになり次第、
already_AddRefed
を関数の戻り値として推奨する事を始めます。 - バグ 59414:
operator&
をprivate
とすることで、キャストによるリーク のいくつかを防ぐのを助けるでしょう - nsCOMPtr</code>を複数のルーチンに分解してライブラリに入れます。それにより、
nsCOMPtr
のクライアントの XPCOM ライブラリへの依存性を減らします。
最近のドキュメントの更新
-
nsCOMPtr
と生のポインタ、リテラル0
との間にある==
と!=
が一部のコンパイラで正しく働かないという記述は、既に問題が解決されたので削除しました。 - スタートガイドに 関数識別子内の
nsCOMPtr
セクション全体を追加しました。 -
nsCOMPtr
機構を使うことに影響を及ぼす現在のバグへの言及を加えました。バグ 59212 と バグ 59414 - Morten Welinder のコメントのように、1 と3 の比較を修正しました。
- コピー初期化よりも直接の初期化の方が好ましい例を更新しました。