On Wed, Feb 7, 2018 at 4:32 PM, Alex Chen <[email protected]> wrote: > I am trying to port the protocol buffer library to Green Hills Integrity > on a PPC platform. When compiling the library, I ran into the following > compiler error: > > "..\vendor\protobuf\src\google/protobuf/reflection_internal.h", line 306: > error #1001: > class member designated by a using-declaration must be visible > in a > direct base class > using RepeatedFieldAccessor::Add; > > Below is the code snippet where the error occured in reflection_internal.h: > > class RepeatedPtrFieldStringAccessor : public RepeatedPtrFieldWrapper<string> > { > typedef void Field; > typedef void Value; > using RepeatedFieldAccessor::Add; > > public: > RepeatedPtrFieldStringAccessor() {} > }; > > It seems the statement "using RepeatedFieldAccessor::Add" is trying to > access the member function Add() that is two levels higher in the class > hierarchy, which is not allowed by the compiler because it is not a direct > base class. If my explanation is confusing, I wrote a small snippet of code > below that simulates the same problem: > > class A > { > public: > virtual void foo() {} > }; > > template<typename T> > class B : public A > { > public: > virtual void foo() {} > }; > > class C : public B<std::string> > { > using A::foo; > }; > > I am to successfully compile the protobuf library using Microsoft Visual > Studio and Linux GNUC, but not MULTI Integrity compiler. I consulted with > Green Hills and they say that syntax is illegal. They even pointed me to > this link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32039 > Reading the thread reminds me how difficult C++ is... Is there any way I can run this MULTI Integrity compiler on my macosx, linux or windows? Or can you ask Green Hills what other compiler can reproduce the same problem?
> > Does anyone know how to workaround this issue? I rather not have to modify > the protobuf library code to fix it. > > Thanks, > > -Alex > > -- > 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. > -- 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.
