Nesne türü ClassName
'un bir Python listesini vector<ClassName>
kabul eden bir C++ işlevine nasıl geçirebilirim?Python listesini Boost.python kullanarak C++ vektörüne geçirme
En iyi bulduğum şunun gibi bir şey: example. Maalesef, kod çöküyor ve nedenini anlayamıyorum. İşte derdi: Bu etmektir işlemek için bir std::vector<Foo>
void bar (std::vector<Foo> arg)
kolay yolu alır fonksiyonu var varsayarsak
#include <boost/python/stl_iterator.hpp>
template<typename T>
void python_to_vector(boost::python::object o, vector<T>* v) {
stl_input_iterator<T> begin(o);
stl_input_iterator<T> end;
v->clear();
v->insert(v->end(), begin, end);
}
Çok teşekkür ederim. Listeden vektöre otomatik dönüşüme sahip olmanın bir yolu var mı? –
Maalesef, hayır. Bununla birlikte, bir liste alan, onu bir vektöre dönüştüren ve çubuk işlevine geçiren python tarafında yazılmış bir işleve sahip olabilirsiniz. Bu C++ çirkinlik biraz gizlemek yardımcı olacaktır. –