Допустим есть COM коллекция. Написали для неё for_each типа такого:
template
<
class Coll, // collection class
class CollItem, // collection item class
class F // function object
>
HRESULT for_each(Coll* pColl, F f)
{
if (pColl == 0)
return E_POINTER;
HRESULT hr;
long lCnt = 0;
if (FAILED(hr = pColl->get_Count(&lCnt)))
return hr;
for(long l = 0; l < lCnt; l++)
{
CComPtr<CollItem> pItem;
if (FAILED(hr = pColl->Item(l, &pItem)))
return hr;
if (FAILED(hr = f()))
return hr;
}
return S_OK;
};
Но в COM-е есть 2 разных способо определения кол-ва числа элементов в коллекции. get_Count и get_Length. По этому мне надо как то в compile time определять каклй из методов присуствует в коллекции и вызывать именно его. Это возможно?
ps: я так понял в данном случае специлизации использовать нельзя?
... << RSDN@Home 1.1.0 stable >>