diff --git a/doc/v2/implicit.html b/doc/v2/implicit.html new file mode 100644 index 00000000..99ce9ad8 --- /dev/null +++ b/doc/v2/implicit.html @@ -0,0 +1,149 @@ + + + + + +
|
+ |
+ Boost.Python+ +Header <boost/python/implicit.hpp>+ |
implicitly_convertible
+
+ implicitly_convertible allows Boost.Python to
+ implicitly take advantage of a C++ implicit or explicit conversion
+ when matching Python objects to C++ argument types.
+
+ implicitly_convertible+template <class Source, class Target> +void implicitly_convertible(); ++ +
| Parameter + | Description + + |
|---|---|
Source
+ | The source type of the implicit conversion + + |
Target
+ | The target type of the implicit conversion + |
Target(s),
+ where s is of type Source, is valid.
+
+ from_python
+ converter to Target which can succeed for any
+ PyObject* p iff there exists any registered
+ converter which can produce Source rvalues
+
+
+#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() { return v; }
+ int v;
+};
+
+int x_value(X const& x)
+{
+ return x.v;
+}
+
+X make_x(int n) { return X(n); }
+
+BOOST_PYTHON_MODULE_INIT(implicit_ext)
+{
+ module("implicit_ext")
+ .def("x_value", x_value)
+ .def("make_x", make_x)
+ .add(
+ class_<X>("X")
+ .def_init(args<int>())
+ )
+ ;
+ implicitly_convertible<X,int>();
+ implicitly_convertible<int,X>();
+}
+
+
++>>> from implicit_ext import * +>>> x_value(X(42)) +42 +>>> x_value(42) +42 +>>> x = make_x(X(42)) +>>> x_value(x) +42 ++ +
Revised + + 08 May, 2002 + + + +
© Copyright Dave + Abrahams 2002. All Rights Reserved. +