Доброе время суток, попробовал разобраться с 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 ?
Здравствуйте, <Аноним>, Вы писали:
А>Можно конечно не греть голову с локи и написать свой класс который сохраняет пары идентификатор=указатель на функцию, но хочется разобраться.
А>Подскажите кто знает как, как реализуется данная готическая фича с помощью 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>>