Экспорт типа в Python - PullRequest
       14

Экспорт типа в Python

2 голосов
/ 18 марта 2011

Я хочу экспортировать синглтон в python с использованием boost.python и использовать его там. Вот код:

class ConfigManager : public boost::serialization::singleton<ConfigManager> {};
inline ConfigManager &configManager() { return ConfigManager::get_mutable_instance(); }

BOOST_PYTHON_MODULE(ConfigManager)
{
    bp::class_<ConfigManager, boost::noncopyable>("ConfigManager", bp::no_init);
    bp::def("getHandle", &configManager, bp::return_value_policy<bp::copy_non_const_reference>());
}

Теперь, когда я звоню getHandle в Python, я получаю:

TypeError: Нет to_python (по значению) конвертер найден для типа C ++: ConfigManager

Что я сделал не так?

1 Ответ

2 голосов
/ 18 марта 2011

copy_non_const_reference попытается скопировать вашу ссылку на объект Python, вы должны использовать вместо bp::reference_existing_object, я попытался здесь, и сообщение об ошибке исчезло

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...