From: Gabriel Dos Reis (gdr_at_[hidden])
Date: 2002-09-07 08:37:06
Guillaume Melquiond <gmelquio_at_[hidden]> writes:
| > P.S.: I've seen another severe restriction, but I don't believe that this is
| > a problem of the interval library. It isn't possible to instantiate
| > std::complex<interval<float> >. How shall we cope with this?
| You are right, it's not a problem of the interval library. The C++
| Standard says that "the effect of instantiating the template complex for
| any type other than float, double or long double is unspecified" (26.2.2).
| Not being able to instantiate complex<interval> because the Standard
| decided the only interesting types are float, double and long double is
| really a pity.
Well, I think you're reading too much into the standard. The standard
didn't decide the only interesting floating point types are float,
double and long double.
1.3.13 unspecified behavior
behavior, for a well-formed program construct and correct data, that
depends on the implementation. The implementation is not required to
document which behavior occurs. [Note: usually, the range of possible
behaviors is delineated by this International Standard. ]
In particular the standard doesn't prohibit instantiations on a
numerical type T other than float, double and long double. It is up
to the implementation to decide whether it supports such constructs.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk