_com_ptr_tは _COM_SMARTPTR_TYPEDEFと組み合わせて便利に使っているのだけど、初期化の際に生のポインタと同じように &演算子が使えるのを不思議に思ってはいた。*1
思ってはいたけど、基本的に初期化時にしか &演算子は使わないので気にしないでいた。
で、その実体はと言うと…&演算子を呼び出した時点で保持しているオブジェクトを開放する*2 仕様でした。
ちょっと怖い仕様だとは思うけど、生のポインタと同じ使い勝手を実現する現実解としてはこういう実装になるんだろうな。