opaque_pointer_converter.qbk 1.4 KB

12345678910111213141516171819202122232425262728293031
  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. [endsect]
  26. [section Macro `BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID(Pointee)`]
  27. 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.
  28. [note The macro must be invoked in every translation unit which uses the opaque converter.]
  29. [endsect]
  30. [endsect]