PDA

Visualizza la versione completa : [C++] Traits e function pointer


giuseppe500
20-07-2011, 21:44
ciao.
in breve:
è possibile utilizzare un traits di una classe template per incapsulare un puntatore a funzione?
Il puntatore a funzione puo' essere "visto" come un tipo in c++ o come un typedef?
ed estratto al momento opportuno?

mi sembra che boost abbia qualcosa del genere , ma forse sbaglio.
chiedo.
grazie.

MItaly
20-07-2011, 23:40
I puntatori a funzione sono dei tipi in C++, ma non ho ben capito qual è il tuo scopo... Dai un po' di contesto.

giuseppe500
21-07-2011, 01:32
certo MItaly.
vorrei "incapsulare" la funzione di creazione nel tipo che voglio costruire.
In pratica vorrei "mettere" l'indirizzo della funzione che crea il tipo, nel tipo stesso per poterla passare assieme al tipo ad un altro oggetto .
Un po come il pattern comand che incapsula un operazione io vorrei incapsulare la funzione che crea l'oggetto per utilizzarla in un altro contesto o passarla ad un altro oggetto che la utilizzerà quando sara' necessario.

Sembra stupido perchè basta fare new classxxx() ma io voglio cercare di non utilizzare quel new classxxx perchè per farla la classe deve conoscere il tipo(e quindi ci dovrà essere un include "classxxx.h") mentre se passo l'indirizzo della funzione all' oggetto che chiama quella funzione non devo conoscere nulla tranne il tipo per creare un istanza(almeno spero).

mi sono spiegato un po male.

niente , ciao.

MItaly
21-07-2011, 02:33
In sostanza vuoi poter passare un generico function object con una certa firma? Hai guardato std::function (incluso in C++0x) o boost::function (http://www.boost.org/doc/libs/1_47_0/doc/html/function.html) (per lo standard C++ attuale)?

giuseppe500
21-07-2011, 07:45
ho letto,il problema Mitaly è che lo dovrei fare senza boost e senza C++0x, si puo'?
è sbagliata l'idea del traits?
grazie.
ciao.

Loading