![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
boost/python/implicit.hppBoost , Boost.Python Reference Manual , Chapter 5. To/From Python Type Conversion
|
Параметр |
Описание |
---|---|
Источник |
Тип источника неявного преобразования |
Цель |
Целевой тип неявного преобразования |
Декларация<Target
t(s);
>, где s является источником типа, действительна.
регистрирует конвертер rvalue<from_python
>в Target, который может быть успешным для любого<PyObject*p
>, если существует любой зарегистрированный конвертер, который может производить значения Source
Пользователи C++ ожидают, что смогут воспользоваться той же совместимостью в Python, что и в C++.
В C++:
#include <boost/python/class.hpp> #include <boost/python/implicit.hpp> #include <boost/python/module.hpp> using namespace boost::python; struct X { X(int x) : v(x) {} operator int() const { return v; } int v; }; int x_value(X const& x) { return x.v; } X make_x(int n) { return X(n); } BOOST_PYTHON_MODULE(implicit_ext) { def("x_value", x_value); def("make_x", make_x); class_<X>("X", init<int>()) ; implicitly_convertible<X,int>(); implicitly_convertible<int,X>(); }
В Python:
>>> from implicit_ext import * >>> x_value(X(42)) 42 >>> x_value(42) 42 >>> x = make_x(X(42)) >>> x_value(x) 42
Статья boost/python/implicit.hpp раздела Boost.Python Reference Manual Chapter 5. To/From Python Type Conversion может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Chapter 5. To/From Python Type Conversion ::
реклама |