我有一個使用Boost.Serialization的C++庫。我正在使用Boost.Python爲這個庫創建Python綁定。很明顯,如何爲Boost.Python製作一個使用Boost.Serialization的pickle套件(使用Boost.Serialization保存爲字符串,並將該字符串返回給Python)。Boost.Serialization和Boost.Python雙向pickle
我要的是相反的:給定一個boost::python::object
,我想有一個serialize(...)
功能會叫Python的pickle.dumps()
功能和序列生成的字符串。 (想象一下std::vector<boost::python::object>
。當我序列化這個向量時,Boost.Serialization會調用輔助函數serialize()
)這可能嗎?更好的是,是否有可能使用cPickle
並繞過將控制權交給Python解釋器?
你已經找到了解決?我現在有同樣的問題。我認爲定義了一個'命名空間boost {命名空間序列化{模板 void serialize(Archive&a,boost :: python :: object&obj,const unsigned version){/*...*/; }}}'應該這樣做,但在我嘗試之前...謝謝! –
eudoxos
對我來說,更大的問題是如何使用泡菜模塊本身。你可以使用boost :: python :: import導入它。我最終選擇了一個不涉及這個問題的具體問題的不同解決方案。 boost :: serialization :: serialize()函數的設置應該和你描述的完全一樣。 – foxcub