]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/python/doc/reference/opaque_pointer_converter.qbk
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / python / doc / reference / opaque_pointer_converter.qbk
1 [section boost/python/opaque_pointer_converter.hpp]
2 [section Introduction]
3 `opaque<>` registers itself as a converter from Python objects to pointers to undefined types and vice versa.
4 ``
5 namespace boost { namespace python
6 {
7 template<class Pointee>
8 struct opaque
9 {
10 opaque();
11 };
12 }}
13 ``
14 [endsect]
15 [section Class template `opaque` constructor]
16 ``opaque();``
17 [variablelist
18 [[Effects][
19 * Registers the instance as a [link to_from_python_type_conversion.boost_python_lvalue_from_pytype_.class_template_lvalue_from_pytyp `lvalue_from_pytype`] converter from Python objects into opaque pointers.
20 The Python Objects created are named after the type pointed to by the opaque pointer being wrapped.
21 * Registers the instance as a [link to_from_python_type_conversion.boost_python_to_python_converter.class_template_to_python_convert `to_python_converter`] from opaque pointers to Python objects.
22 ]]
23 ]
24 [note If there is already an instance registered by another module, this instance doesn't try to register again in order to avoid warnings about multiple registrations.]
25
26 [endsect]
27 [section Macro `BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID(Pointee)`]
28 This macro must be used to define specializations of the [link utility_and_infrastructure.boost_python_type_id_hpp.functions `type_id`] function which can't be instantiated for incomplete types.
29 [note The macro must be invoked in every translation unit which uses the opaque converter.]
30 [endsect]
31 [endsect]