Это не работает, потому что объявление stod
выглядит следующим образом:
double stod (const string &str, size_t *idx = 0);
double stod (const wstring &str, size_t *idx = 0);
Другими словами, idx
является указателем на значение, которое должно получить информация при желании. Таким образом, при передаче значения необходимо, чтобы был указателем, таким как &pos
.
Возможно, что он мог использовать ссылку, которая позволила бы вам использовать pos
без амперсанда. Однако это исключило бы возможность использования нулевого указателя для указания, что вы не хотите информацию.
, поскольку она в основном смоделирована после исходной функции C strtod
(также в заголовке C ++ <cstdlib>
), это вариант использования, который был сохранен оттуда.