This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: error: 'comp' was not declared in this scope


Hi Eljay,

Yes, I was not building the libbg.so myself. I guess it was 
built with GCC 3.4.3
I am triying to rebuild the whole package with GCC 4.1.1 but 
again the scope problem is occuring and this time with 'EBUSY' 
error flag.

error: 'EBUSY' was not declared in this scope

on this line:
if(pthread_mutex_trylock(&lock) != EBUSY)

Since, EBUSY is standard error flag and there shouldn't be a 
problem with its scope. What could be wrong here?

Divy.

---------Included Message----------
>Date: 14-Feb-2007 14:59:34 -0500
>From: "John Love-Jensen" <eljay@adobe.com>
>To: "Divy Kanungo" <divyk@bgnet.bgsu.edu>, "MSX to GCC" <gcc-
help@gcc.gnu.org>
>Subject: Re: error: 'comp' was not declared in this scope
>
>Hi Divy,
>
>> So, is it that the new gcc version does not allow directly 
using the protected
>variabled declared in parent class?
>
>I may be mistaken, but I think that the issue has to do with 
two-phased
>lookup.  GCC 4.x implements two-phased lookup, as per ISO 14882.
>
>You could also have accessed c by:
>
>this->c
>
>...or...
>
>std::priority_queue< T, std::vector<T>, PLess<T> >::c
>
>...but I find the using statement to be the quickest & best 
solution.
>
>> (because that worked fine when I had gcc 3.4.3)
>
>GCC 3.4.3 did not implement two-phased lookup.  (Or perhaps it 
was just that
>GCC 3.4.3 did not fully implement two-phased lookup.)
>
>I'm not sure of all the intricate details between...
>ADL (argument-dependent name lookup; aka Koenig lookup)
>OL (ordinary name lookup)
>FNI (friend name injection)
>two-phase lookup (aka non-dependent lookup)
>
>From <http://safari5.bvdep.com/0201734842/glossary1> ...
>
>two-phase lookup
>The name lookup mechanism used for names in template. The "two 
phases" are
>(1) the phase during which a template definition is first 
encountered by a
>compiler, and (2) the instantiation of a template. Nondependent 
names are
>looked up only in the first phase, but during this first phase 
nondependent
>base classes are not considered. Dependent names with a scope 
qualifier (::)
>are looked up only in the second phase. Dependent names without 
a scope
>qualifier may be looked up in both phases, but in the second 
phase only
>argument-dependent lookup is performed.
>
>> Also now I have new issues when I compile the program. I get 
the following
>linker errors:
>
>That's weird.  It almost looks like you are linking with gcc 
instead of g++.
>
>How are you building libbg.so with GCC 4.x?
>
>Or if you are not building libbg.so yourself, it then looks 
like libbg.so
>was not built with GCC 4.x.
>
>HTH,
>--Eljay
>
>
>
---------End of Included Message----------



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]