Classe CAdapt
Este modelo é usado para empacotar classes que redefinem o operador adress-of para retornar algo Outros que o endereço do objeto.
template <
class T
>
class CAdapt
Parâmetros
- T
O tipo adaptado.
Comentários
CAdapt é um modelo simples usado para empacotar classes que redefinem o (operador adress-ofoperador &) para retornar algo Outros que o endereço do objeto.Exemplos de tais classes CComBSTR, CComPtr, e CComQIPtr classe, suporte a classes e o compilador COM _com_ptr_t. Todas essas classes redefinem o operador adress-of para retornar o endereço de um de seus membros de dados (um BSTR no caso de CComBSTRe um ponteiro de interface no caso de outras classes).
CAdaptda função principal é ocultar o endereço - do operador definida pela classe T, mas ainda manter as características da classe adaptada. CAdapt atenda a essa função, mantendo um membro público, m_T, of type Te definindo sistema autônomo operadores de conversão, operadores de comparação e um construtor de cópia para permitir especializações em dos CAdapt deve ser tratado sistema autônomo se fossem objetos do tipo T.
O adaptador de classe CAdapt é útil porque muitas classes de contêiner (por exemplo, classes de contêiner STL) esperam poder obter sistema autônomo endereço es de seus objetos contidos usando o endereço - do operador. A redefinição do operador adress-of pode confound esse requisito, geralmente causando erros de compilação e evitar o uso do tipo unadapted com esse contêiner.CAdapt Fornece uma forma em torno desses problemas.
Normalmente, você usará CAdapt Quando você deseja armazenar CComBSTR, CComPtr, CComQIPtr, ou _com_ptr_t objetos em um contêiner STL, sistema autônomo um lista.Você não pode armazenar objetos desses tipos como este:
std::list< CComBSTR > m_List;
Em vez disso, você deve armazenar objetos de adaptador como este:
std::list< CAdapt< CComBSTR > > m_List;
Requisitos
Cabeçalho: atlcomcli.h