Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]traits e function pointer

    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.

  2. #2
    I puntatori a funzione sono dei tipi in C++, ma non ho ben capito qual è il tuo scopo... Dai un po' di contesto.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    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.

  4. #4
    In sostanza vuoi poter passare un generico function object con una certa firma? Hai guardato std::function (incluso in C++0x) o boost::function (per lo standard C++ attuale)?
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ho letto,il problema Mitaly è che lo dovrei fare senza boost e senza C++0x, si puo'?
    è sbagliata l'idea del traits?
    grazie.
    ciao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.