|
Boost : |
From: Phil Edwards (pedwards_at_[hidden])
Date: 2001-05-11 07:46:49
On Thu, May 10, 2001 at 10:44:33PM -0500, Jeremy Siek wrote:
>
> The InputIteratorConcept is requiring that the difference_type of the
> iterator be a signed integer. However, the SignedIntegerConcept does not
> have a specialization for whatever type the typedef intmax_t is. A
> specialization needs to be added.
>
> On Thu, 10 May 2001, Joel Young wrote:
> jdy> Now I am getting the following error with the GCC 2.97 snapshot 20010417
[...]
> jdy> /cs/src/gcc/gcc-2.96experimental/SunOS5.7-latest/bin/g++
You might want to rename "gcc-2.96experimental" if you're not using 2.96
by the way. :-)
Anyhow, this was fixed a few days before that GCC snapshot. The problem
is that intmax_t is being typedef'd oddly, probably to 'long long'
because (IIRC) Boost uses its own stdint.h (don't recall the full path).
That header is using some C99 features, including 'long long'. Support for
that has to be specifically enabled in the g++ library (--enable-long-long),
because we're anal about compliance and 'long long' isn't C++98. So no
specialization was done.
At the time of the snapshot, long long support in the C++ library was off
by default. Now some other stuff has been fixed, and it's on by default.
If you get a new snapshot, this will Just Work; if you want to rebuild
your current snapshot, the configure option I mentioned above should do it.
Actually, if you get a very recent snapshot, g++ won't do any of the
concept checking stuff at all (it's disabled for the 3.0 release).
Luck++;
Phil
-- pedwards at disaster dot jaj dot com | pme at sources dot redhat dot com devphil at several other less interesting addresses in various dot domains The gods do not protect fools. Fools are protected by more capable fools.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk