CAdapt クラス
このテンプレートは、オブジェクトのアドレス以外の値を返すために、アドレス演算子を再定義するクラスをラップするときに使用されます。
template <
class T
>
class CAdapt
パラメーター
- T
同期された型。
メンバー
パブリック コンストラクター
名前 |
説明 |
---|---|
コンストラクターです。 |
パブリック演算子
名前 |
説明 |
---|---|
m_Tへの const の参照を返します。 |
|
m_T への参照を返します。 |
|
m_Tの同期型のオブジェクトを比較します。 |
|
m_Tに同期された型のオブジェクトを割り当てます。 |
|
m_Tの同期型のオブジェクトを比較します。 |
パブリック データ メンバー
名前 |
説明 |
---|---|
同期するデータ。 |
解説
CAdapt は、オブジェクトのアドレス以外の値を返すために (operator &アドレス演算子) の再定義するクラスをラップするために使用される単純なテンプレートです。このようなクラスの例は、ATL CComBSTR、CComPtrと CComQIPtr のクラスが含まれており、コンパイラ COM クラスは、_com_ptr_tをサポートします。これらのクラスはすべてアドレス演算子のデータ メンバー ( CComBSTRの場合は BSTR、および他のクラスの場合は) インターフェイス ポインターの 1 種類のアドレスを返すように再定義します。
クラス Tで定義されている CAdapt の主な役割は、アドレス演算子を非表示にするだけでなく、同期されたクラスの特性を保持します。CAdapt はパブリック メンバー、m_Tを、型 Tのままにして、変換演算子、比較演算子と CAdapt の特殊化が処理済みとコピー コンストラクターを定義して T型のオブジェクトである場合は、このロールを実行します。
多くのコンテナー クラス (STL コンテナーのような分類します) アドレス演算子を使用して含まれているオブジェクトのアドレスを受け取るため、アダプターの派生クラス CAdapt と便利です。アドレス演算子の再定義は、通常、コンパイル エラーが発生し、そのコンテナーを持つ unadapted 型の使用を防ぐこの条件では、異なるできます。CAdapt は、それらの問題を囲む方法を提供します。
通常 listなど、STL コンテナーに CComBSTR、CComPtr、CComQIPtr、または _com_ptr_t のオブジェクトを格納する場合、CAdapt を使用します。このようなこれらの型のオブジェクトを格納できません:
std::list< CComBSTR > m_List;
代わりに、このようなアダプターのオブジェクトを格納する必要があります:
std::list< CAdapt< CComBSTR > > m_List;
必要条件
Header: atlcomcli.h