Cython: Arbeiten mit C ++ - Streams

9

Das Problem

Wie benutzt man C ++ - Streams (wie std::ifstream oder ostream ) von Cython? In C ++ könnten Sie Folgendes tun:

%Vor%

Wie würden Sie das gleiche in Cython erreichen?

Aktueller Status

Ich habe die Strukturen von fstream in Cython eingepackt, so dass ich ihre Namen in Funktionsdeklarationen verwenden kann, aber der schwierige Teil besteht darin, die write-Methode zu verwenden (in Cython umzubrechen) und die Streams zu erstellen. Ich habe keine Code-Beispiele im Internet gefunden.

P.S. Ich weiß, eine mögliche Antwort wäre, einfach Pythons IO zu verwenden, aber ich muss die Streams an und von C ++ - Code übergeben / zurückgeben, mit dem ich eine Verbindung herstelle.

Dies ist der Code, der die Stream-Deklarationen umschließt:

%Vor%     
piotrMocz 22.06.2015, 15:34
quelle

1 Antwort

5

Es gibt nicht viel besonderes an den C ++ - Iostreams, verglichen mit dem Einschließen einer anderen C ++ - Klasse. Das einzige knifflige Bit war der Zugriff auf std::ios_base::binary , was ich getan habe, indem ich Cython gesagt habe, dass std::ios_base ein Namespace und keine Klasse ist.

%Vor%

Die andere Sache, die ich hinzufügen kann, ist, dass ich mich nicht mit der Klassenhierarchie beschäftigt habe - das könnte nützlich sein, wenn Sie auch die Varianten wchar haben wollen, aber es ist viel einfacher, Cython nur die Klassen mitzuteilen, die Sie sind tatsächlich verwenden.

    
DavidW 23.06.2015, 17:25
quelle

Tags und Links