示例#1
0
    # propagate "explictness" to python :)
    cl.constructors(lambda c: c.explicit == True,
                    allow_empty=True).allow_implicit_conversion = False

# expose member variables of type `boost::optional<vector<...>>`
uns = mb.namespace('::marocco::placement::algorithms')
namespaces.extend_array_operators(uns)
for cl in uns.classes(allow_empty=True):
    cl.include()
    for variable in cl.variables(allow_empty=True):
        classes.add_optional_vector_wrapper_for(mb, variable)
    classes.add_pickle_suite(cl)
    cl.constructors(lambda c: c.explicit == True,
                    allow_empty=True).allow_implicit_conversion = False

# Do not expose typedefs (prevent AttributeErrors on import)
for td in mb.typedefs(allow_empty=True):
    td.exclude()

# expose only public interfaces and protected interfaces,
# protected variables cannot be exposed :(
namespaces.exclude_by_access_type(
    mb, ['variables', 'calldefs', 'classes', 'typedefs'], 'private')

mb.namespace('::boost::serialization').exclude()

containers.extend_std_containers(mb)

wrap.set_number_of_files(0)
wrap.finish()
#!/usr/bin/env python
from pywrap.wrapper import Wrapper
from pywrap import containers, namespaces, matchers

wrap = Wrapper()
wrap.set_number_of_files(0)

containers.extend_std_containers(wrap.mb)
wrap.mb.class_('_Bit_reference').include()

wrap.finish()