So you're saying its essentially converting the value of Expr into an istringstream. Then it converts the 'is' which is created by the string 'Expr' and in the line of the code

is >> value
it converts 'is' into a double because value is declared as a double type data. Am I getting this right?