2013-05-13 9 views
10

Voglio esporre lo boost::shared_Ptr al livello Tcl usando SWIG. ma al momento non so che potrei esporlo. Ho scoperto che la cartella SWIG/Lib contiene il file di interfaccia per shared_ptr.i. Ma nel contenuto ho scoperto che non potevo utilizzarlo direttamente. Deve essere incluso dopo "boost_shared_ptr.i". Ma non c'è niente come boost_shared_ptr.i nella cartella "SWIG/Lib/tcl" ma abbiamo un'interfaccia simile che potrei includere in Java.Come esporre Boost :: shared_ptr <T> al file di interfaccia Tcl + SWIG?

+0

Vorrei poterti aiutare, ma non ho mai eseguito il binding C++/Tcl in modo sostanziale e sicuramente non l'ho fatto con SWIG. (Conosco un po 'come associare i tipi fondamentali, ma 'shared_ptr'? Non ne ho idea, lavoro molto di più con la semplice vecchia C ...) –

+0

Non stai cercando di esporre T come parametro a Tcl, vero? – AlexK

+0

In realtà voglio creare degli handle per boost :: shared_ptr in tcl. –

risposta

0

Non puoi usare standard shared_ptr? Intendo std :: tr1 :: shared_ptr? In gcc si avrebbe bisogno di

#include <tr1/memory> 
+0

Non riesco a utilizzare std :: tr1 :: shared_ptr, poiché la mia libreria verrà utilizzata sia per Java che per TCL e ho già esposto tutto su Java e sembra che funzioni correttamente. –

+0

Cosa c'è di più in Microsoft non è riuscito con la compatibilità C++ 0x. Funziona su WIN XP SP2 o su quest'ultimo, quindi se si crea un progetto, che avrà molti utenti, non è ancora possibile utilizzarlo. – ST3

4

Ultima volta che ho provato non c'era un buon supporto per boost/shared_ptr in tutti SWIG. Python ha avuto la migliore copertura. Sono interessato a sapere se questo è cambiato.

Per quanto riguarda la mia altra esperienza con SWIG, è anche necessario creare un'istanza del modello utilizzando il modello% per ogni tipo che si desidera esporre.

Problemi correlati