Boost logo

Boost :

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.

-- Gaby


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk