Hi all,

I'm from the Apache Mesos community and we're working on things that uses 
proto3.
We usually turn on compiler options to report missing values in switch 
statements,
and don't do a "default" clause. This gives us the benefit of capturing missing 
enum
values during compile time. However, it seems that for proto3's open enum 
values,
we need to either manually adding those `*_INT_MAX_SENTINEL_DO_NOT_USE_` values
in switch statements, or add a default clause to avoid such errors but then we 
lose
the benefit I mentioned above. It seems that the compiler is not clever enough
to infer that clauses for those sentinel values are not needed for switch 
statements
that are inside `if(Enum_IsValid(...))` statements.

My question is, what's the best practice if I don't want to add a default 
clause?
Is it safe to add either `*_INT_MAX_SENTINEL_DO_NOT_USE_` symbols
or `google::protobuf::kint32max` into switch statements, such that these will
remain unchanged in future versions of protobuf library? Or is there a better 
way
to address this?

Thanks,
Chun-Hung

-- 
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