I noticed that if I have a message with a repeated field of an enumeration
type, such as:
message foo {
enum bar_e {
BAR_VALUE_1
}
repeated bar_e bars = 1;
}
The code generation seems to have an error in typing when accessing the
repeated field. I would expect that the line:
foo.bars()
to return me a RepeatedField<bar_e>, but it actually returns
RepeatedField<int32>. I understand that enums and int32 are convertible,
but it seems ... strange.
This is evident when I try to use the C++11 for loops, because this doesn't
work:
for (bar_e bar: foo.bars())
Instead, I have to do something like:
for (int bar_int : foo.bars())
and then static_cast it to the enumeration ... or use a standard for loop,
since foo.bar(x) returns the enum as you would expect.
Is this intended behavoir? And if so, why?
Thanks!
--
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 http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.