Hi enum values conflict for C++ is there any solution now solution 
suggested below is available in latest version any workarounds to handle 
this problem with 2.4.1 or latert versions.
 
Giri
On Friday, 20 August 2010 23:42:30 UTC+5:30, alopecoid wrote:

> Hi, 
>
> This post is about the fact that protobuf enum values use C++ scoping 
> rules, meaning that, unlike in Java, enum values are siblings of their 
> type, not children of it. 
>
> Say I have the following contrived message: 
>
>   message MyMessage { 
>     enum Foo { 
>       FIRST = 0; 
>       SECOND = 1; 
>       BOTH = 2; 
>     } 
>     required Foo foo = 1; 
>
>     enum Bar { 
>       FIRST = 0; 
>       SECOND = 1; 
>       BOTH = 2; 
>     } 
>     required Bar bar = 2; 
>   } 
>
> This wouldn't compile because the protobuf compiler recognizes the 
> fact that for C++, the generated enum values for Foo and Bar would 
> conflict with each other. 
>
> However, for Java, this wouldn't be a problem. I would like to propose 
> that instead of "punishing" the generated Java code because of C++'s 
> strange enum behavior (by forcing developers to rename their enum 
> values even though they don't collide), that instead, the generated C+ 
> + enum declarations are wrapped in their own nested namespaces? For 
> example, something like: 
>
>   namespace Foo { 
>     enum Enum { 
>       FIRST = 0; 
>       SECOND = 1; 
>       BOTH = 2; 
>     } 
>   } 
>
>   namespace Bar { 
>     enum Enum { 
>       FIRST = 0; 
>       SECOND = 1; 
>       BOTH = 2; 
>     } 
>   } 
>
> At this point, the enum values would be accessed like Foo::FIRST, 
> Bar::FIRST, etc, which would eliminate the enum value collision 
> problem altogether, and at the same time make them appear to behave 
> more like Java's enum scoping rules (which arguably make more sense). 
>
> Thoughts? 
>
> Thank you.

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at http://groups.google.com/group/protobuf?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to