連想コンテナに関する SGI のドキュメントによると、「要素はキーに従って格納されるため、各要素に関連付けられたキーは不変であることが不可欠です」。ポインターを std::map へのキーとして使用することがあります。これは、ポイントされたオブジェクトが変更可能である可能性がありますが、ポインター自体は定数であるためです。
QPointer は技術的にはポインターを模倣したオブジェクトであり、Qt のドキュメントには、QPointer をポインターとまったく同じように使用できると書かれています。QPointer オブジェクト自体は実行中に変更される可能性があるため、std::map コンテナーのキーとして引き続き使用できますか?
編集 1: QMap を使用できません。std::map に固執する必要があります。
編集 2: QPointer を使用すると、コードがコンパイルされます。問題は、実行時に不愉快な驚きを期待すべきかどうかです。