Compile time method choose problem
От: Tom Россия http://www.RSDN.ru
Дата: 27.01.04 09:59
Оценка:
Допустим есть 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 >>
Народная мудрось
всем все никому ничего(с).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.