Boost logo

Boost :

From: Terje Slettebø (tslettebo_at_[hidden])
Date: 2002-12-30 17:53:48


>From: "Early Ehlinger" <earlye_at_[hidden]>

> This is an interesting argument. In other words, lexical_cast is, by
> definition, conversion through a stream. Therefore, one cannot expect a
> string with whitespace to exit as it went in.

Not a string that uses whitespace as termination, no. However, that also
means that you can't lexical_cast convert any type that has whitespace in
its stream output, to std::string, which could make it rather less useful.
This is the current situation.

Note that it doesn't end there:

std::string str=boost::lexical_cast<std::string>(""); // Throws

Shouldn't this be allowed, either? This is also a case that has resulted in
problem-reports for the current version. This is fixed in the proposal, and
the fix for both whitespace and empty strings can work the same way:

std::stringstream interpreter;
interpreter << source;
return interpreter.str();

Regards,

Terje


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