Microsoft提供了CAdapt
类,以便在STL容器中使用覆盖运算符(operator&
)地址的类。 MSDN对此使用CAdapt
:
通常,当您要在STL容器中存储
CAdapt
,CComBSTR
,CComPtr
或CComQIPtr
个对象时,您将使用_com_ptr_t
list
。
关于我的问题:
应使用CAdapt
的STL容器的完整列表是什么?
如果容器包含键/值对(例如map
),请指定密钥或值是否需要CAdapt
。
答案 0 :(得分:5)
应该使用CAdapt的STL容器的完整列表是什么?
无。实现应该假设运营商&amp;重载,并使用正确的表达式&reinterpret_cast<char&>(obj)
现在,还有一个问题是你没有问:
我的VC ++ STL实现不同意。它确实提供了
CAdapt
作为解决方法。应该使用CAdapt的容器的完整列表是什么?
我的头脑,我今天vector<T>
(将它们存储为T[]
,因此合理地需要对它们进行算术运算)和deque(将它们存储为多个较小的T[]
s同样相同理)。 list,map,set,multiset和multimap都在节点上工作,因此它们自己已经包装了每个对象。
答案 1 :(得分:2)
documentation的另一件事:
适配器类CAdapt很有用,因为许多容器类(例如STL容器类)希望能够使用address.strong文本获取其包含对象的地址。
我认为您不会找到具有此要求的容器列表。这听起来像是依赖于我的实现。