On Mon, May 3, 2010 at 7:23 PM, Austin Bingham <[email protected]> wrote:
> Hi everyone,
>
> I've recently been developing a python module and C++ library in
> parallel, with core functionality in python and C++ largely just
> layered on top of the python (with boost.python.) In some cases,
> however, for performance reasons, the C++ API "reaches into" the
> python code via the C API, and this tends to happen very often with
> numpy-related code.
>
> As a result, I'm using the numpy C API a lot in my C++ library. To
> make a long story short, I'm finding that there are many places where
> I need to include numpy headers in my own headers (e.g. when a
> template class uses part of the numpy API.) If the symbol I want in my
> header is in ndarrayobject.h, it seems that I'm obligated to define
> PY_ARRAY_UNIQUE_SYMBOL because that file includes __multiarray_api.h.
> However, defining that macro in a header file seems like a bad idea
> because of potential conflicts with headers from other libraries.

You don't need to define PY_ARRAY_UNIQUE_SYMBOL to include any public
numpy header - it seems that you are trying to avoid getting
PyArray_API defined, but I don't understand why.

PY_ARRAY_UNIQUE_SYMBOL should only be used when you want to split your
extension into separately compilation units (object files).

David
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to