I think moving "using RepeatedFieldAccessor::Add" to the parent class
RepeatedPtrFieldWrapper might fix the issue. Could you give it a try? If it
works, could you also help make a pull request? I don't have a compiler
that can reproduce the error you saw.

On Wed, Feb 7, 2018 at 4:53 PM, Feng Xiao <[email protected]> wrote:

> Can you create an issue on our github repo?
> https://github.com/google/protobuf
>
> 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
>>
>> 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.

Reply via email to