Boost logo

Boost :

From: Stephen Silver (boost_at_[hidden])
Date: 2001-01-21 18:43:31


Paul Moore wrote:

> > http://www.argentum.freeserve.co.uk/cpp/rational.zip
>
> This is nice. Would you have any objections to me including it in
> the rational library, as a regression test?

No objections. I already gave it a Boost-compliant copyright notice.

> lcm bugs fixed. However, I think you are mistaken over the
> operator>> errors - remember that >> consumes as much input as
> it can, only setting the error state if it cannot construct a valid value.
>
> Your example
>
> std::istringstream iss("57A");
> iss >> r0;
>
> consumes "57". This is a valid representation of a rational, namely
> 57/1, so r0 is set to this, and the stream is in a good state.

OK. But in that case the documentation needs changing, because it
says:

    The external representation of a rational is two integers,
    separated by a slash (/). On input, there must be no space
    between the numerator and the slash.

which seems to imply that anything without a / is not a valid input.
(Also, the above requirement seems lacking in symmetry. Would it not
be better if it either allowed spaces both sides of the / or disallowed
them both sides?)

Stephen


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