[C++-sig] Fill a python::str with contents of a vector<unsigned char> ?

Jim Bosch talljimbo at gmail.com
Mon Jun 7 06:06:57 CEST 2010


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);
>
> How can I skip the intermediate copy?
>


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())
   )
);


Note that this will not fail gracefully if myvector.empty().


Jim Bosch



More information about the Cplusplus-sig mailing list