我想添加一個構造函數,因此我可以做到這一點(我的字節字符串中,因爲我使用的Python 2.6和2.7):構造函數添加到一個boost ::蟒蛇vector_indexing_suite暴露類
import myboostpymodule
d = 'serialised representation of a vector of some c++ objects'
vec = myboostpymodule.MyVectorType(d)
我在哪裏過載矢量構造函數接受一個字符串,其中將包含序列化的數據,並MyVectorType進行曝光boost::python::vector_indexing_suite
:
namespace bp = boost::python;
bp::class_< std::vector<SomeType> >("MyVectorType")
.def(bp::vector_indexing_suite< std::vector<SomeType> >());
- 是否有可能做到這一點沒有包裹(通過子類化和噓聲st :: python :: wrapper < ...>)添加構造函數的向量?
- 我可以告訴boost python使用靜態方法(或普通函數)作爲構造函數嗎?
重要的是我可以使用構造函數(而不是其他函數)從python創建向量。
我其實這樣做是因爲我想使我的向量的蟒蛇實例與pickle,以及所有我的C++類型已經有明確定義的序列化(包括std::vector<...>
),所以它似乎是合理使用這一次醃製整個載體,而不是允許python獨立地醃製每個元素。
,它很可能是一個更高性能的解決方案
謝謝;事實證明'make_constructor(...)'在任何情況下都需要返回一個'shared_ptr'對象。 – James 2011-05-31 21:26:38