The spec doesn't allow such conversion. If some language implementation 
supports the conversion, it is considered a bug by not following spec.

Protobuf is designed to interop across different languages/platforms. 
Implicit conversion in "some libraries" allows creating non portable 
payload which leads to issues/surprises when you change the 
language/implementation in part of your pipeline, or communicate to a 
different party.

That being said, you can propose to add the conversion to the spec to 
promote float->double promotion. That would require to change all the 
language implementations and we need to evaluate the cost and benefit.

On Wednesday, November 15, 2017 at 10:18:15 PM UTC-8, James Philbin wrote:
>
> But the type stored on the wire is known - so it seems like it could be 
> supported (simply static_cast<double>(float_val)). By 'some libraries': 
> does the C++ ParseFromString method do this or not?
>
> Thanks!
> James
>
> On Wed, Nov 15, 2017 at 3:57 PM Marc Gravell <[email protected]> 
> wrote:
>
>> Not really, no. They take different amounts of space on the wire, and 
>> have a different declared wire type (header). Some libraries may choose to 
>> be gracious and apply the conversion silently, but other libraries could 
>> just say "unexpected wire type" and stop processing.
>>
>> You could perhaps do it as a `oneof`, and have the client check both?
>>
>> On 15 Nov 2017 11:51 p.m., "James Philbin" <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> Is it safe to upgrade float fields to doubles for serialized protos? If 
>>> not, why not?
>>>
>>> Thanks,
>>> James
>>>
>>> -- 
>>>
>> You received this message because you are subscribed to the Google Groups 
>>> "Protocol Buffers" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>
>>
>>> To post to this group, send email to [email protected].
>>> Visit this group at https://groups.google.com/group/protobuf.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to