diff --git a/src/yaml/parsers.hh b/src/yaml/parsers.hh index 3cea6a6..204dafa 100644 --- a/src/yaml/parsers.hh +++ b/src/yaml/parsers.hh @@ -11,6 +11,7 @@ #include #include +#include #include "yaml.h" @@ -115,16 +116,17 @@ struct ScalarParserTraits /** * Parse a YAML scalar value into a native datatype. * - * @param [in] scalarValue The YAML scalar value - * @param [out] value The parsed value of the scalar value + * @param [in] scalar The YAML scalar value + * @param [out] value The parsed value of the scalar value * @return `true` if the conversion succeeded */ template bool -ParseScalar(const std::string& scalarValue, +ParseScalar(const std::string& scalar, T& value) { - return sscanf(scalarValue.c_str(), ScalarParserTraits::fmt, &value) == EOF; + std::stringstream s(scalar); + return (bool)(s >> value); } } /* namespace yaml */