468,463 Members | 2,086 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,463 developers. It's quick & easy.

What is an unqualified-id ?

Hello,
I've searched and searched and cannot seem to figure it out so I was
hoping someone could explain to me exactly what an unqualified-id is?

My compiler is generating this error...
ThreadLibMutex.h:37: error: expected unqualified-id before ')'
token

My line 37 is the top of this constructor...

Mutex(){
#ifdef WIN32
// we use critical sections in Windows
InitializeCriticalSection( &m_mutex );
#else
pthread_mutex_init( &m_mutex, 0 );
#endif
}

The class itself is defined immediately above and consists of....

class Mutex {
protected:
// define the base mutex types
#ifdef WIN32
CRITICAL_SECTION m_mutex;
#else
pthread_mutex_t m_mutex;
#endif
public:
inline void Lock() {
#ifdef WIN32
EnterCriticalSection( &m_mutex );
#else
pthread_mutex_lock( &m_mutex );
#endif
}

inline void Unlock() {
#ifdef WIN32
LeaveCriticalSection( &m_mutex );
#else
pthread_mutex_unlock( &m_mutex );
#endif
}
}; // end class Mutex

I've just never heard of an unqualified-id so I have no idea whats
wrong, but the code is looking perfectly legal to me.
Any advice appreciated, and again, thanks in advance!
Regards,

Oct 20 '06 #1
8 16924
DevNull wrote:
Hello,
I've searched and searched and cannot seem to figure it out so I was
hoping someone could explain to me exactly what an unqualified-id is?

My compiler is generating this error...
ThreadLibMutex.h:37: error: expected unqualified-id before ')'
token

My line 37 is the top of this constructor...

Mutex(){]
I wouldn't be surprised if some Microsoft include file #define's
Mutex to be something.
Oct 20 '06 #2
* DevNull:
Hello,
I've searched and searched and cannot seem to figure it out so I was
hoping someone could explain to me exactly what an unqualified-id is?

My compiler is generating this error...
ThreadLibMutex.h:37: error: expected unqualified-id before ')'
token

My line 37 is the top of this constructor...

Mutex(){
#ifdef WIN32
// we use critical sections in Windows
InitializeCriticalSection( &m_mutex );
#else
pthread_mutex_init( &m_mutex, 0 );
#endif
}
What Ron Natalie said (look out! Microsoft macros everywhere! or, as Dan
Quayle would have said, Microsoft macroes everywhere!), plus, try using
the qualified id

Mutex::Mutex()

;-)

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
Oct 20 '06 #3

<snip>
What Ron Natalie said (look out! Microsoft macros everywhere! or, as Dan
Quayle would have said, Microsoft macroes everywhere!), plus, try using
the qualified id

Mutex::Mutex()

;-)
</snip>

Nope that made things worse...
ThreadLibMutex.h:35: error: definition of implicitly-declared
'Mutex::Mutex()'
ThreadLibMutex.h:35: error: declaration of 'Mutex::Mutex()' throws
different exceptions
ThreadLibMutex.h:9: error: than previous declaration 'Mutex::Mutex()
throw ()'

Line 9 being where the Mutex class is located. Oh and ya can't blame
this one on MS, I'm compiling this code with GCC v4.0.3 it's just
supposed to be a simple little crossplatform wrapper :( If anyone is
interested I can post the complete source. It's only 49 lines of code
in total.

Oct 20 '06 #4
DevNull wrote:
<snip>
>What Ron Natalie said (look out! Microsoft macros everywhere! or, as Dan
Quayle would have said, Microsoft macroes everywhere!), plus, try using
the qualified id

Mutex::Mutex()

;-)
</snip>\
Try sticking #undef Mutex
right before the affected line.

A unqualified id is one without :: in it.

Nothing inside a class definition should have a qualification.
Oct 20 '06 #5
Nope that made things worse...
ThreadLibMutex.h:35: error: definition of implicitly-declared
'Mutex::Mutex()'
ThreadLibMutex.h:35: error: declaration of 'Mutex::Mutex()' throws
different exceptions
ThreadLibMutex.h:9: error: than previous declaration 'Mutex::Mutex()
throw ()'
Listen to your compiler, not the MS bashers.

Declare the constructor in your class definition. . .

Michael

Oct 20 '06 #6
Awesome!
<snip>
Declare the constructor in your class definition. . .
</snip>
Ahhh thank you!
I got it working now.

Oct 20 '06 #7
DevNull wrote:
If anyone is interested I can post the complete source. It's only 49
lines of code in total.
I'd say that would be a great idea.
Oct 20 '06 #8
* DevNull:
<snip>
>What Ron Natalie said (look out! Microsoft macros everywhere! or, as Dan
Quayle would have said, Microsoft macroes everywhere!), plus, try using
the qualified id

Mutex::Mutex()

;-)
</snip>

Nope that made things worse...
ThreadLibMutex.h:35: error: definition of implicitly-declared
'Mutex::Mutex()'
You also need to /declare/ the constructor in the class definition.

Hth.,

- Alf

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
Oct 20 '06 #9

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Erik Moore | last post: by
1 post views Thread by Simon | last post: by
3 posts views Thread by mavis | last post: by
reply views Thread by kmladenovski | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.