C ++ String zur Python -Begrenzung mit SWigPython

Python-Programme
Anonymous
 C ++ String zur Python -Begrenzung mit SWig

Post by Anonymous »

Ich habe kürzlich eine SWig -Einschränkung im Zusammenhang mit der Größe von C ++ std :: string gestoßen. Mir ist aufgefallen, dass das Paar, wenn die Größe der Zeichenfolge im Paar kleiner ist, als 2*1024*1024*1024-64 (2 GB) das Paar ordnungsgemäß zurückgibt und die Saite einer python-nativen Zeichenfolge abgebildet ist. Wenn die Saite jedoch größer als 2 GB ist, wird die Schnur in Python nicht mehr auf eine native Python -Saite abgebildet. Zum Beispiel mit dem folgenden Code und der Zuordnung von Swig nach Python können Sie meinen Fehler reproduzieren. Python 2.7.12 < /p>

/////////// bridge.h
#include
#include
#include
#include
#include
using namespace std;
pair large_string(long sz);
long size_pstring(pair& p);
void print_pstring(pair& p);
string save_pstring(pair& p);

//////////bridge.cc
#include "bridge.h"

pair large_string(long sz){
pair pis;
pis.first=20;
pis.second=string(sz,'A');
return pis;
}

long size_pstring(pair& p){
return p.second.size();
}

void print_pstring(pair& p){
cout>> print l
2147483648
>>> fname = graphdb.save_pstring(s)
< /code>

Das Speichern der Zeichenfolge in einer Datei ist korrekt und als nächstes kann ich die Datei in eine Python -Zeichenfolge korrekt laden. < /p>

MEINE FRAGE: Weiß jemand, welche SWig-Konfigurationsoption ich ändern sollte, damit große Strings ordnungsgemäß auf native Python zugeordnet werden können?>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post