Classe de CAdapt
Ce modèle est utilisé pour encapsuler les classes qui redéfinissent l'opérateur d'adresse pour retourner autre que l'adresse de l'objet.
template <
class T
>
class CAdapt
Paramètres
- T
Le type approprié.
Membres
Constructeurs publics
Nom |
Description |
---|---|
Constructeur. |
Opérateurs publics
Nom |
Description |
---|---|
Retourne une référence d' const à m_T. |
|
Retourne une référence à m_T. |
|
Compare un objet du type approprié avec m_T. |
|
Assigne un objet du type approprié à m_T. |
|
Compare un objet du type approprié avec m_T. |
Données membres publiques
Nom |
Description |
---|---|
Les données qui sont adaptées. |
Notes
CAdapt est un modèle simple utilisé pour encapsuler les classes qui redéfinissent l'opérateur d'adresse (operator &) pour retourner autre que l'adresse de l'objet.Les exemples de ces classes incluent CComBSTRATL, CComPtr, et les classes d' CComQIPtr , et la classe de prise en charge COM du compilateur, _com_ptr_t.Ces classes toutes redéfinissent l'opérateur d'adresse pour retourner l'adresse d'une de leurs données membres ( BSTR dans le cas de CComBSTR, et d'un pointeur d'interface dans le cas de les autres classes).
Le rôle principal d'CAdapt est de masquer l'opérateur d'adresse défini par la classe T, mais conserve toujours les caractéristiques de la classe approprié.CAdapt remplit ce rôle en maintenant un membre public, m_T, du type T, et en définissant des opérateurs de conversion, d'opérateurs de comparaison, et un constructeur de copie pour permettre les spécialisations d' CAdapt à traiter comme s'il s'agit d'objets de type T.
La classe CAdapt d'adaptateur est utile car de nombreuses classes de conteneur (telles que les classes de conteneurs STL) comptent obtenir les adresses de leurs objets à l'aide de l'opérateur d'adresse.La redéfinition de l'opérateur d'adresse peut confondre cette spécification, en général de provoquer des erreurs de compilation et empêchant l'utilisation du type unadapted à ce conteneur.CAdapt offre un moyen de contourner ces problèmes.
En général, vous utiliserez CAdapt lorsque vous souhaitez stocker CComBSTR, CComPtr, CComQIPtr, ou des objets d' _com_ptr_t dans un conteneur STL tel qu' list.Vous ne pouvez pas les objets du magasin de ces types comme suit :
std::list< CComBSTR > m_List;
À la place, vous devez stocker des objets d'adaptateur comme suit :
std::list< CAdapt< CComBSTR > > m_List;
Configuration requise
Header: atlcomcli.h