CAdapt选件类
此模板用于包装除了对象的地址以外,重新定义address-of运算符返回其上的选件类。
template <
class T
>
class CAdapt
参数
- T
适合的类型。
成员
公共构造函数
名称 |
描述 |
---|---|
构造函数。 |
公共运算符
名称 |
描述 |
---|---|
返回 const 对 m_T。 |
|
返回对 m_T。 |
|
该条件的类型的对象。m_T比较。 |
|
将满足类型的对象。m_T。 |
|
该条件的类型的对象。m_T比较。 |
公共数据成员
名称 |
描述 |
---|---|
适合的数据。 |
备注
CAdapt 是一个个简单模板包装重新定义运算符地址的选件类(operator &)除了对象的地址以外,返回内容。 示例的此类选件类包含ATL的 CComBSTR、 CComPtr和 CComQIPtr 选件类,因此,编译器COM支持选件类,_com_ptr_t。 这些选件类都重新定义address-of运算符返回地址一个其数据成员(对于 CComBSTR的 BSTR 和对于其他选件类的接口指针)。
选件类是隐藏address-of运算符定义的CAdapt的主要角色,T,仍然保留适合的选件类的特性。 CAdapt 执行此角色通过保存公共成员,m_T,类型 T和通过定义转换运算符、比较运算符和复制构造函数允许 CAdapt 的专用化将类型,T对象。
适配器选件类 CAdapt 非常有用,因为许多容器选件类(如STL容器类)使用address-of运算符,应能够获取其包含的对象地址。 重定义运算符地址可能模糊处理此要求,通常会导致编译错误和阻止使用与该容器的不能满足类型。 CAdapt 在这些问题提供一种方法。
通常,那么,当您在一个STL容器要存储 CComBSTR、 CComPtr、 CComQIPtr或 _com_ptr_t 对象(如 list,您将使用 CAdapt。 无法存储这些类型的对象象这样的:
std::list< CComBSTR > m_List;
相反,您应存储如下的适配器对象:
std::list< CAdapt< CComBSTR > > m_List;
要求
Header: atlcomcli.h