Il problemaCython: lavorare con C++ flussi
Come si fa a utilizzare C++ flussi (come std::ifstream
o ostream
) da Cython? In C++, è possibile effettuare le seguenti operazioni:
std::ofstream output { filename, std::ios::binary };
output.write(...);
Come si otterrebbe lo stesso in Cython?
Stato attuale
ho avvolto le strutture da fstream in Cython in modo che possa utilizzare i loro nomi nelle dichiarazioni di funzione, ma la parte difficile è quello di utilizzare (avvolgere in Cython, forse) il metodo di scrittura e per creare i flussi. Non ho trovato esempi di codice su internet.
P.S. So che una possibile risposta sarebbe semplicemente usare l'IO di Python, ma ho bisogno di passare/restituire gli stream da e verso il codice C++ con cui sto interagendo.
Questo è il codice che avvolge le dichiarazioni del flusso:
cdef extern from "<iostream>" namespace "std":
cdef cppclass basic_istream[T]:
pass
cdef cppclass basic_ostream[T]:
pass
ctypedef basic_istream[char] istream
ctypedef basic_ostream[char] ostream