That's correct but can't we handle those cases in cppyy?
We should provide a native Python interface whenever it's possible.

2015-01-20 15:40 GMT+02:00 Amaury Forgeot d'Arc <amaur...@gmail.com>:

> Hi,
>
> 2015-01-20 14:14 GMT+01:00 Omer Katz <omer.d...@gmail.com>:
>
>> The documentation is unclear how you can pass a pointer to a Python
>> variable e.g.:
>> str = ""
>>
>> e.SerializeToString(str)
>>
>
> Message::SerializeToString() updates its argument in-place, but Python
> strings are not mutable.
> You should allocate a std::string from Python code, and pass it to the
> function.
> Maybe something like:
>
> s = cppyy.gbl.std.string()
> e.SerializeToString(s)
> print s
>
>
>
>
>>
>> ---------------------------------------------------------------------------
>> TypeError                                 Traceback (most recent call
>> last)
>> <ipython-input-7-993880892d74> in <module>()
>> ----> 1 e.SerializeToString(str)
>>
>> TypeError: none of the 5 overloaded methods succeeded. Full details:
>>   bool google::protobuf::MessageLite::SerializeToString(std::string*) =>
>>     TypeError: cannot pass str as basic_string<char>
>>   bool google::protobuf::MessageLite::SerializeToString(std::string*) =>
>>     TypeError: cannot pass str as basic_string<char>
>>   bool google::protobuf::MessageLite::SerializeToString(std::string*) =>
>>     TypeError: cannot pass str as basic_string<char>
>>   bool google::protobuf::MessageLite::SerializeToString(std::string*) =>
>>     TypeError: cannot pass str as basic_string<char>
>>   bool google::protobuf::MessageLite::SerializeToString(std::string*) =>
>>     TypeError: cannot pass str as basic_string<char>
>>
>> Best Regards,
>> Omer Katz.
>>
>> _______________________________________________
>> pypy-dev mailing list
>> pypy-dev@python.org
>> https://mail.python.org/mailman/listinfo/pypy-dev
>>
>>
>
>
> --
> Amaury Forgeot d'Arc
>
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to