is this a bug in iostream? ...
#include
void money_conversion (){
constexpr double dollars_in_yen=0.01;
constexp
When a std::istream
or std::locale
library function attempts to parse any numeric input, it always first grabs all contiguous characters in the set "0123456789abcdefxABCDEFX+-"
and which might be valid for the type of conversion being done, and only then tries to determine what they mean. See the description of Stage 2 of the num_get processing.
So in your "5e"
example, the operator>>(double&)
function grabs both '5'
and 'e'
, expecting to find an exponent after the 'e'
, but stops there, and those characters don't make a valid complete double
.