擅长:python、mysql、java
<p>我想做一些类似的事情,并基于<a href="http://swig.10945.n7.nabble.com/dynamic-cast-lt-gt-for-Python-td7866.html" rel="nofollow noreferrer">this question</a>提出了一个类似但不同的解决方案。在</p>
<p>如果您提前知道了可能的类型,并且不介意额外的开销,那么您可以让“out”typemap循环通过并对每个类型进行动态转换,以自动返回带有其实际类型的对象。SWIG已经为具有%factory特性的指针实现了此功能:</p>
<pre><code>%factory(Component* /* or add method name. this is just the typemap filter */,
DerivedComponent1,
DerivedComponent2);
</code></pre>
<p>看着工厂.swg还有boost_-part-ptr。我把这个应用于shared-u-ptr和dynamic-tu-pointer-cast:</p>
^{pr2}$