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.
