Standard holder implementation.
От: Batiskaf Израиль http://www.mult.ru/
Дата: 29.06.04 11:56
Оценка:
У меня нет большого опыта работы с boost, между проектами что то просматриваю, и начинаю использовать. Вот прикололся от boost::bind, ядерная вещь, стал применять его для resource holder. Я строю стековый обьект, который при разрушении вызовет функциональный обьект, полученный от bind, примерно так:


Holder hld1 = boost::bind( &MyClass::CloseSomething, pMyClass, "blabla", nCustomerNumber );


но имплементацию холдера в boost так и не нашел, использую на скоро собранные самоделки:


struct    Holder
{
    struct InnerHolder
    {
        virtual    ~InnerHolder()
        {
        }
    };
    InnerHolder* _pInnerHolder;
    
    template<typename T>
    Holder(    T op ):_pInnerHolder( new InnerHolderImpl<T>( op ) )
    {            }
    
    ~Holder()
    {
        delete _pInnerHolder;
    }

    template< typename T >
    struct InnerHolderImpl : public InnerHolder
    {
        InnerHolderImpl( T op ) : _op( op ){}
        virtual    ~InnerHolderImpl()
        {
            _op();
        }

        T    _op;            
    };
};


может кто подскажет что то уже реализованное в бусте, с лучшей производительностью.
Will I live tomorrow? Well I just can't say
But I know for sure — I don't live today.
Jimi Hendrix.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.