> On 06/06/2010 06:51 PM, Embhi Karuche wrote:
>> I have a vector<unsigned char>  whose contents I would like to copy
>> into a python::str.
>> Currently, I am doing:
>>
>> string temp(myvector.begin(), myvector.end());
>> python::str data(temp);
>
> You'll need to use the regular Python C API to avoid the temporary:
>
>
> python::str data(
>   python::handle<>(
>      PyString_FromStringAndSize(&myvector.front(), myvector.size())
>   )
> );

This works:
python::str stuff(reinterpret_cast<const char *>(&foo_vector.front()),
foo_vector.size()*sizeof(FooVector::value_type));

btw, the sizeof(FooVector::value_type) part is not necessary since its
a vector<unsigned char> ; nonetheless, it clearer and possibly robust.
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to