草庐IT

c++ - SWIG 的 Python 包装器中临时对象的生命周期(?)

2月12日编辑我最近刚想出了一个奇怪的崩溃,使用一些SWIG为某些C++类生成的Python包装器。似乎SWIG和Python的结合有点急于清理临时值。事实上,它们是如此渴望,以至于在它们还在使用的时候就被清理干净了。一个显着压缩的版本看起来像这样:/*Example.hpp*/structFoo{intvalue;~Foo();};structBar{FootheFoo;Bar();};/*Example.cpp*/#include"Example.hpp"Bar::Bar(){theFoo.value=1;}Foo::~Foo(){value=0;}/*Example.i*/%mo