Пытаюсь разобраться с Loki::Factory
От: Аноним  
Дата: 24.10.06 08:08
Оценка:
Доброе время суток, попробовал разобраться с Loki::Factory, неполучается, читал о фабриках в книге Александреску, вроде все понятно на практике ума дать немогу. Пытался сделать простенький пример:


namespace SWITCH
{
        void f1()
    {
        return;
    }
    void f2()
    {
        return;
    }
};
...
Loki::Functor<void, Loki::NullType> cmd(SWITCH::f1);
Loki::Factory<??непонимаю что ставить сюда, пробовал void(хотя знал что неправильно)??, int  ,Loki::Functor<void, Loki::NullType> > factory;
factor.Register(1,cmd );


Можно конечно не греть голову с локи и написать свой класс который сохраняет пары идентификатор=указатель на функцию, но хочется разобраться.
Подскажите кто знает как, как реализуется данная готическая фича с помощью Loki::Factory ?
Re: Пытаюсь разобраться с Loki::Factory
От: np9mi7 Россия  
Дата: 24.10.06 08:16
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Можно конечно не греть голову с локи и написать свой класс который сохраняет пары идентификатор=указатель на функцию, но хочется разобраться.

А>Подскажите кто знает как, как реализуется данная готическая фича с помощью Loki::Factory ?

Фабрика, для того чтобы что то производить. А она у тебя нечего не производит (void):
    template
    <
        class AbstractProduct, 
        typename IdentifierType,
        typename ProductCreator = AbstractProduct* (*)(),
        template<typename, class>
            class FactoryErrorPolicy = DefaultFactoryError
    >
    class Factory;
, то есть твои фабричные методы должны возвращать void * а не просто void;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.