ios::internal
flag.
std::numeric_limits<long double>::max()
,
std::numeric_limits<long double>::max() / 2
and
std::numeric_limits<long double>::max() * 3 / 4
.
This suggests the hash function isn't taking into account the
full range of long double
- it might be
converting it to a double
. This won't cause
anything to break, but means that the hash function isn't
as good as it should be for long double
s.
This library has never worked [on Borland 5.5.1 and 5.6.4], and the only tests that 'pass' are compile-fail tests failing for the wrong reasons!
Historically, Spirit supported a lot of compilers, including (to some extent) poorly conforming compilers such as VC6. Spirit v1.6.x will be the last release that will support older poorly conforming compilers. Starting from Spirit v1.8.0, ill conforming compilers will not be supported. If you are still using one of these older compilers, you can still use Spirit v1.6.x.
The reason why Spirit v1.6.x worked on old non-conforming compilers is that the authors laboriously took the trouble of searching for workarounds to make these compilers happy. The process takes a lot of time and energy, especially when one encounters the dreaded ICE or "Internal Compiler Error". Sometimes searching for a single workaround takes days or even weeks. Sometimes, there are no known workarounds. This stifles progress a lot. And, as the library gets more progressive and takes on more advanced C++ techniques, the difficulty is escalated to even new heights.
Spirit v1.6.x will still be supported. Maintenance and bug fixes will still be applied. There will still be active development for the back- porting of new features introduced in Spirit v1.8.0 (and Spirit 1.9.0) to lesser able compilers; hopefully, fueled by contributions from the community. For instance, there is already a working AST tree back-port for VC6 and VC7 by Peder Holt.
is_convertible<T,U>::value
may be true for unrelated
iterators T
and U
(including many of the Boost specialized adaptors) which use
enable_if_convertible
to restrict the applicability
of converting constructors, even when T
is not
convertible to U
because instantiating the
conversion will cause a compilation failure.
T*
and T&
that should
have been T const*
and T const&
.
std::exp (long
double)
on this platform.
float
and double
. If the test
fails, interval<float>
and
interval<double>
should not be used
on this compiler/platform since there will be no
numerical guarantee.
insert(iterator,range)
is not available due to partial ordering errors (the core library remains usable).
For codewarrior the problem is at least std::auto_ptr
overloads (the core library remains usable).
insert(iterator,range)
is not available due to partial ordering errors (the core library remains usable).
For codewarrior the problem is at least std::auto_ptr
overloads (the core library remains usable).
insert(iterator,range)
is not available due to partial ordering errors (the core library remains usable).
For codewarrior the problem is at least std::auto_ptr
overloads (the core library remains usable).
transfer(range,ptr_map)
is not available due to partial ordering errors (the core library remains usable).
For codewarrior the problem is not known so please submit a patch.
transfer(range,ptr_map)
and
insert(range)
code>
is not available due to partial ordering errors (the core library remains usable).
For codewarrior the problem is at least std::auto_ptr
overloads (the core library remains usable)..
strol
symbol in the
compiler's static runtime library (libcprts.a
) to
something else is known to resolve the issue.
so
, etc.
std::internal
flag in the iostreams implementation of the
standard library used on that compiler/platform combo. Apart from that,
the format library works as expected.