Boost pythonライブラリを使用して、渡されたオブジェクトタイプがpythonに存在するかどうかを確認する必要があります。
// bp = boost::python
bool TypeExists(const std::string &typeName)
{
bp::object ret = bp::exec(
(boost::format("'%1%' in globals()") % typeName).str().c_str()
);
return bp::extract<bool>(ret);
}
したがって、このコードでは、次のようなPython式を実行します'TypeName' in globals()
。これにより、ブール型のオブジェクトが返されます。ただし、extractは常に0を返します。呼び出し後の次の行TypeExists
でこのタイプのオブジェクトを作成するため、タイプ100%が存在します。どうしたの?