On Aug 31, 5:17 pm, Michael Poole <mdpo...@troilus.org> wrote:
> Joshua Haberman writes:
> > The protobuf library compiled and installed fine, but the generated
> > classes threw warnings (and since I was compiling with -Werror, failed
> > to compile). The warning was:
>
> > benchmarks/google_messages.pb.cc: In copy constructor
> > ‘benchmarks::SpeedMessage2::SpeedMessage2(const
> > benchmarks::SpeedMessage2&)’:
> > benchmarks/google_messages.pb.cc:4179: warning: base class ‘class
> > google::protobuf::Message’ should be explicitly initialized in the
> > copy constructor
>
> > I thought this was an odd warning, since the constructors don't
> > explicitly initialize their base classes, and do not throw warnings.
> > I also thought it was odd since other versions of gcc don't throw this
> > warning AFAIK.
>
> This warning is triggered by using g++'s -Weffc++ warning flag. I
> raised this before[1], with a patch that was backed out because it led
> to constructor code being duplicated.
>
> Making both sides happy probably involves adding a command-line flag
> to protoc that toggles how it generates code: by default, omitting
> those constructor calls, but allowing the user to ask for those
> constructors to be called.
>
> Kenton, would that be a reasonable approach? If so, I should have
> time to update my patch to do that and resubmit.
>
> [1]http://code.google.com/p/protobuf/issues/detail?id=86
Hmm, this does not seem to be the same warning. The warning you cite
is about a failure to initialize member variables. The warning I
encountered is about a failure to explicitly call the constructor for
the base class.
I am guessing that addressing my warning would not cause any extra
code to be emitted, because it's just making an implicit base class
constructor explicit.
Josh
--~--~---------~--~----~------------~-------~--~----~
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
protobuf+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/protobuf?hl=en
-~----------~----~----~----~------~----~------~--~---