ciao.
Sto cercando di capire come si crea un function object parametrizzato;
il primo parametro template(double) èil tipo di ritorno del function object , e la typelist , tratta da Loki sono i tipi dei parametri
il function object viene poi specializzato cosi':codice:// Define a Functor that accepts an int and a double and // returns a double Functor<double, TYPELIST_2(int, double)> myFunctor;
mi chiedevo dato che esistono le tuple nel tr1 , fosse possibile utilizzare in qualche modo quelle.codice:template <typename R> class FunctorImpl<R, NullType> { public: virtual R operator()() = 0; virtual FunctorImpl* Clone() const = 0; virtual ~FunctorImpl() {} }; template <typename R, typename P1> class FunctorImpl<R, TYPELIST_1(P1)> { public: virtual R operator()(P1) = 0; virtual FunctorImpl* Clone() const = 0; virtual ~FunctorImpl() {} }; template <typename R, typename P1, typename P2> class FunctorImpl<R, TYPELIST_2(P1, P2)> { public: virtual R operator()(P1, P2) = 0; virtual FunctorImpl* Clone() const = 0; virtual ~FunctorImpl() {} };
è possibile specializzare un template che accetta delle tuple in base ai tipi della tuple?
Il problema ruota attorno ai parametri che devo passare al FunctorImpl(implementazione del function object) i parametri devono avere un tipo e un valore di quel tipo ew possono essere molti.
Sul libro consiglia di usare un numero alto di parametri nella typelist, ad es 12 per risolvere i problemi.
se potessi uare le tuple non dovrei integrare loki nei miei progetti , almeno per quanto riguarda i functon object parametrizzati, che sono alla fine degli oggetti command(secondo gof).
il fatto è che queste typelist sono spesso comode , ma hanno un implementazione incasinata.
Forse è possibile includere solo i file di questetypelist nel mio sorgente, voi mi consigliereste di utilizzarle? o di farne a meno?
grazie.

Rispondi quotando