[C++-sig] Re: Creating an array in C++

David Abrahams dave at boost-consulting.com
Thu Feb 26 01:13:52 CET 2004


Philip Austin <paustin at eos.ubc.ca> writes:

> David Abrahams writes:
>  > 
>  > Excuse me?  Alpha?!
>  > 
>  > It may be missing a couple of features, but it's hardly alpha
>  > software.
>
> Sorry, that was a careless choice of words.  We use numeric::array
> daily without a hitch, but like Marc-Alexis I'm not sure how to create
> an empty array of arbitray shape and type using the boost python
> array constructor.
>
>> What python argument value do you expect to be passed to the python
>> object's __init__ function?
>
> Our most common requirement is to be able to do something like
>
> theArray=numarray.array(shape=(300,),type=numarray.UInt8)
>
> from the C++ side

Does this work?

     handle<> m = ::PyImport_Import(str("numarray").ptr())
     object numarray(m);
     numeric::array theArray(make_tuple(300), numarray.attr("UInt8"));

Yeah, it's ugly.

> and then fill it with values returned from C or Fortran.

You have to take theArray.ptr() to get the python object back if you
want access to its raw memory.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com





More information about the Cplusplus-sig mailing list