5

Python アプリケーションの実行を高速化することを期待して、boost::python を使用して Python クラスを C++ に移植しようとしています (C++ に移植しているクラスは、アプリケーションの実行時間の約 30% を占めています)。

元の Python クラスの init は次のようになります。

class PyClass(object):
    def __init__(self, child):
        child.set_parent(self)
        ...

これを C++ コンストラクターで複製するにはどうすればよいですか?

C++ クラスがある場合:

class CClass
{
    // to get input args that match the Python class I need
    CClass(boost::python::object &child)
    {
         // but how do I get the boost::python::object self
         // as I only have *this in C++ ?
         CClass& c = boost::python::extract<CClass&>(child);
         c.set_parent(self);
    }

    ...
}

ありがとう、マーク

4

1 に答える 1

3

この回答で説明されているように、をthis介してポインタを使用できます。boost::python::ptr(this)

于 2013-02-18T13:18:53.420 に答える