This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
compiler confusion?
- From: Ivan Molella <i dot molella at reply dot it>
- To: gcc at gcc dot gnu dot org
- Date: Wed, 23 Apr 2003 14:23:05 +0100
- Subject: compiler confusion?
i' have the follwing problem:
I' have the following assertion class:
template<class Excp>
class Assert
{
public:
typedef Excp exception_throwed;
Assert(bool val, const char* msg_throwed, long code)
: value(val), message(msg_throwed), excCode(code)
{ }
Assert(bool val, string msg_throwed, long code)
: value(val), message(msg_throwed), excCode(code)
{ }
void do_assert()
{
if (!(value)) throw exception_throwed(message, excCode);
}
private:
bool value;
const string message;
long excCode;
};
when i use this assertion in the following code:
void
telnetClient::init(const string pTelnetProg,char* const* pArgs,char*
const*pEnv,int _timeout) {
.....
31> Assert<telnetClientException>((checkProcessStatus() ==
telnetClient::process_running),"[MM CO=EBEX_TELNET_L0016
MM]",PROCESS_DOWN_ERROR).do_assert();
....
}
i have the following error:
telnetClient.cpp: In member function `void
telnetClient::init(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, char* const*, char* const*, int)':
telnetClient.cpp:31: parse error before `==' token
while if i do:
void
telnetClient::init(const string pTelnetProg,char* const* pArgs,char*
const*pEnv,int _timeout) {
.....
31> Assert<telnetClientException>((this->checkProcessStatus()
== telnetClient::process_running),"[MM CO=EBEX_TELNET_L0016
MM]",PROCESS_DOWN_ERROR).do_assert();
....
}
compilation is done without any error.
What's the matter with the first expression?
Thanks in advance.
checkProcessStatus is so defined:
bool
telnetClient::checkProcessStatus()
{
if (task.isAlive()==telnetClient::process_terminated){
return telnetClient::process_terminated;
}
return telnetClient::process_running;
}
Ci sono 10 categorie di persone:
quelli che sanno contare in binario e tutti gli altri.