Re: MinGW not so good with exceptions?
On Feb 17, 1:42 am, "Gerry Ford" <inva...@invalid.net> wrote:
"Dave the Funkatron" <dave.rud...@usask.ca> wrote in messagenews:20921642-=
3b06-4887-8f6f-78e9d492a701@u10g2000prn.googlegroups.com...
Hey all,
I'm using MinGW as part of my toolchain in Eclipse, and I am trying to
figure out why I am getting a compiler error when I include the
<limits> header.
The command that eclipse is running is
g++ -IC:\Dave\School\common\cxx -IC:\Dave\School\common\third party
\packages\glut-3.7.6-bin\include -IC:\Dave\School\common\third party
\packages\pthreads-2005-03-08\Pre-built\include -O0 -g3 -Wall -c -
fmessage-length=0 -ogllib\test_gllib.o ..\gllib\test_gllib.cpp
Is this an entry for the latest "Command line gone wild" video?
The error I get is:
In file included from C:/Dave/School/common/cxx/math/math_utils.h:13,
from C:/Dave/School/common/cxx/gfx2d/col=
or.h:9,
from C:/Dave/School/common/cxx/gllib/gl_=
light.h:
6, from ..\gllib\test_gllib.cpp:8:C:/min=
gw/bin/../lib/
gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/limits:290: error:
expected `;' before "throw"
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/
limits:292: error: expected `;' before "static"
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/
limits:292:22: macro "max" requires 2 arguments, but only 1 given
If I go and look at that code in MinGW's "limits" file, I see the
following struct, in which the the static min() function is the first
offending line of code:
template<typename _Tp>
struct numeric_limits : public __numeric_limits_base
{
/** The minimum finite value, or for floating types with
denormalization, the minimum positive normalized valu=
e. */
static _Tp min() throw() { return static_cast<_Tp>(0); }
/** The maximum finite value. */
static _Tp max() throw() { return static_cast<_Tp>(0); }
/** The @e machine @e epsilon: the difference between 1 an=
d the
least
value greater than 1 that is representable. */
static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
/** The maximum rounding error measurement (see LIA-1). */=
static _Tp round_error() throw() { return static_cast<_Tp>(0)=
; }
/** The representation of positive infinity, if @c
has_infinity. */
static _Tp infinity() throw() { return static_cast<_Tp>(0)=
; }
/** The representation of a quiet "Not a Number," if @c
has_quiet_NaN. */
static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); =
}
/** The representation of a signaling "Not a Number," if
@c has_signaling_NaN. */
static _Tp signaling_NaN() throw() { return
static_cast<_Tp>(0); }
/** The minimum positive denormalized value. For types whe=
re
@c has_denorm is false, this is the minimum positive
normalized
value. */
static _Tp denorm_min() throw() { return static_cast<_Tp>(0);=
}
};
I've never actually seen that throw() syntax before, as I've always
just had throw statements in the body of my code. At any rate, I
thought that GCC might be trying to compile without exceptions, so I
tried including the -fexceptions option to GCC, but that made no
difference. So, any ideas what might get it going?
Yeah, your folders have flourished like weeds. Trim them. Windows ta=
kes an
exception to you.
--
Gerry Ford
"Er hat sich georgiert." Der Spiegel, 2008, sich auf Chimpy Eins komma =
null
beziehend.- Hide quoted text -
- Show quoted text -
"Windows takes an exception to you" ?? Wow, you should watch your tone
on the newsgroups, or people might think you are a jerk. People like
me, for instance. This is especially true when you are giving
irrelevant advice. Like James said, that's actually a pretty short
command like. And, with the rise in storage capacity, paths are
getting longer. If you like, you can keeep your dir structures nice
and shallow, but I don't see why you care if mine are deep, or what
that has to do with the above syntax error.