Paul Giaccone wrote:
n.torrey.pines@gmail.com wrote:
lexical_cast<int>("1e4") == 1 // because of the way streams work of course
I think that in the interests of robustness, and unless a better solution can be found, lexical_cast<> should be secialized for some types.
Interesting... I had exactly the same issue in MEL the other day. The obvious workaround is to cast the string to a float before casting it to an int, but it would be nice if lexical_cast<int> recognised floating-point numbers in scientific notation.
C++ iostreams do not support integers in scientific notation. There may be good reasons for that: 1.2345 is not an integer 1.2345e4 is an integer 1.2345e3 is not an integer That makes the task of parsing integers in scientific notation a bit tricky. --Johan