我有一个返回 IEnumUnknown 的 COM 对象。有什么东西可以把它变成一个 STL 风格的迭代器吗?这样我就可以做这样的事情:
IEnumUnkPtr pEnumUnk;
// ...something that fills in pEnumUnk...
MagicThing m(pEnumUnk);
std::for_each(m.begin(), m.end(), DoSomethingWithUnk);
...或类似的?
我有一个返回 IEnumUnknown 的 COM 对象。有什么东西可以把它变成一个 STL 风格的迭代器吗?这样我就可以做这样的事情:
IEnumUnkPtr pEnumUnk;
// ...something that fills in pEnumUnk...
MagicThing m(pEnumUnk);
std::for_each(m.begin(), m.end(), DoSomethingWithUnk);
...或类似的?
好像 comstl 项目有你需要的东西:http: //www.stlsoft.org/doc-1.9/classcomstl_1_1enumerator__sequence.html