(I think my previous reply didn't arrive)

Thanks Kenton, this worked fine for me.

Probably, with DynamicMessageFactory I was trying to solve in a single
attempt, dynamic generation of both classes known in compile-time and
unknown. I forgot then to check back again with MessageFactory. I
guess, that I have learned the lesson about MessageFactory and
DynamicMessageFactory differences :)

Thanks again for your help. I appreciate it


On Nov 16, 8:48 pm, Kenton Varda <ken...@google.com> wrote:
> BTW, you could catch this problem more easily if you defined a down_cast
> function like:
> template <typename To, typename From>
> To down_cast(From from) {
> #ifdef NDEBUG
>   return static_cast<To>(from);
> #else
>   To result = dynamic_cast<To>(from);
>   assert(result != NULL);
>   return result;
> #endif
> }
> This way, in debug mode you use RTTI to verifythat the down_cast is valid,
> but in release builds you get static cast performance.
> google/protobuf/stubs/common.h contains such an implementation of down_cast,
> although you should not use the protobuf version directly since we may
> decide to change it in the future.  Instead, copy it into your own code.
> On Mon, Nov 16, 2009 at 11:44 AM, Kenton Varda <ken...@google.com> wrote:
> > On Mon, Nov 16, 2009 at 11:35 AM, JC-MAD-SP 
> > <public.cebal...@gmail.com>wrote:
> >> ConcreteMessage* concreteMessage = reinterpret_cast<ConcreteMessage*>
> >> (mesage->New());
> > This line is invalid.  Here, *message is a DynamicMessage, and New() also
> > returns a DynamicMessage, not a ConcreteMessage.  DynamicMessage is a class
> > which implements the Message interface to look like any arbitrary
> > descriptor.  This allows you to represent types which are not compiled into
> > the binary at all.
> > If you want to construct instances of compiled-in types from their
> > descriptors, you want to use MessageFactory::generated_factory().
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to