Python'a maruz kalmak isteyen bir C++ sınıfına sahibim. (Bu sınıfın zaten yazıldığı ve kolayca değiştirilemeyeceği varsayılarak). Bu sınıfta, bir işaretçi olan bir üye var ve bu üyeyi de açığa çıkarmak istiyorum. İşte kodun en az bir versiyonu. anlaşılabilirBoost.Python: bir işaretçi olan sınıf üyesini gösterme
>>> c = C("hello")
>>> c.a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: No to_python (by-value) converter found for C++ type: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*
: Ben bu alanı erişmeye çalışan bir piton çalışma zamanı hata olduğunu haricinde
struct C {
C(const char* _a) { a = new std::string(_a); }
~C() { delete a; }
std::string *a;
};
BOOST_PYTHON_MODULE(text_detection)
{
class_<C>("C", init<const char*>())
.def_readonly("a", &C::a);
}
O tamam derler. Ancak soru şu ki üye işaretçi a
destek boostu ile ortaya çıkarmak mümkün mü? Ve nasıl?
Çok önceden teşekkürler!