###

# Boost.Python

## Header <boost/python/opaque_pointer_converter.hpp>

## Contents

Classes
  Class template `opaque<Pointee>`
    Class template `opaque` synopsis
Macros
  Macro `BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID`
See Also

## Classes

### Class template `opaque<P>`

`opaque<>` registers itself as a converter from Python objects to pointers to undefined types and vice versa.

#### Class template `opaque` synopsis

    namespace boost { namespace python
    {
        template<class Pointee>
        struct opaque
        {
            opaque();
        };
    }}

#### Class template `opaque` constructor

    opaque();

Effects:

- Registers the instance as a `lvalue_from_pytype` converter from Python objects into opaque pointers.

  The Python Objects created are named after the type pointed to by the opaque pointer being wrapped.

- Registers the instance as a `to_python_converter` from opaque pointers to Python objects.

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.

#### Note

Normally only a single instance of this class is created for every Pointee.

## Macros

### Macro BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID(Pointee)

This macro must be used to define specializations of the type_id function which can't be instantiated for incomplete types.

#### Note

The macro must be invoked in every translation unit which uses the opaque converter.

## See Also

return_opaque_pointer

Revised 10 September, 2006

© Copyright 2003..2006 Haufe Mediengruppe. All Rights Reserved.