Visual C/C++ 6.0. Using SEH
I'm facaing a problem in using SEH (structured exceptions handling) in VC 6.0.
Please, create (using Visual C/C++ 6.0) an Empty Console application. Use
following source to build the application:
--------------------------------
class A
{
public:
operator const __int64() const
{
return 33i64; // random number
}
};
inline bool operator!=(const A& val1, const __int64 val2)
{
return false; // doesnt matter what it returns
}
static A g_a;
bool func()
{
__try
{
return (g_a != 0i64);
}
__finally
{
}
return 0;
}
void main(void)
{
// Check the returned value
bool bRetVal = func();
} // Place a breakpoint here and check the value of bRetVal.
--------------------------------
Run the application and check the value returned by func(). In my case it is
24, but it should be false <zero>. Actually (after number of tests) I found
that it is a random number.
Can somebody, please, explain what is goig on?
This code should be working, or I should get a compiler error.
I'm not looking for workaraoung. I just want to understand - am I wrong, or
there is something with the compiler. Thank you !!!
* I've tried the same source using VC 2003 and it works fine.