diff --git a/include/yaml-cpp/emitter.h b/include/yaml-cpp/emitter.h index 76876cd..e6caddb 100644 --- a/include/yaml-cpp/emitter.h +++ b/include/yaml-cpp/emitter.h @@ -132,19 +132,28 @@ namespace YAML if(!good()) return *this; + PrepareNode(EmitterNodeType::Scalar); + + std::stringstream stream; + SetStreamablePrecision(stream); + stream << value; + m_stream << stream.str(); + + StartedScalar(); + return *this; } template<> - inline void Emitter::SetStreamablePrecision(std::stringstream& str) + inline void Emitter::SetStreamablePrecision(std::stringstream& stream) { - str.precision(GetFloatPrecision()); + stream.precision(GetFloatPrecision()); } template<> - inline void Emitter::SetStreamablePrecision(std::stringstream& str) + inline void Emitter::SetStreamablePrecision(std::stringstream& stream) { - str.precision(GetDoublePrecision()); + stream.precision(GetDoublePrecision()); } // overloads of insertion diff --git a/util/sandbox.cpp b/util/sandbox.cpp index aa05394..31e7d4e 100644 --- a/util/sandbox.cpp +++ b/util/sandbox.cpp @@ -9,7 +9,7 @@ int main() out << YAML::Comment("Hello"); out << YAML::Anchor("a") << YAML::Comment("anchor") << "item 1" << YAML::Comment("a"); out << YAML::BeginMap << YAML::Comment("b"); - out << "pens" << YAML::Comment("foo") << "a" << YAML::Comment("bar"); + out << "pens" << YAML::Comment("foo") << 2.3 << YAML::Comment("bar"); out << "pencils" << 15; out << YAML::EndMap << YAML::Comment("monkey"); out << "item 2";