From cf31570dffa4ebfbb5544f5a5ccdcbae559fb524 Mon Sep 17 00:00:00 2001
From: Daniel Friesel <derf@finalrewind.org>
Date: Mon, 24 Sep 2018 15:30:18 +0200
Subject: [PATCH] outputstream: Add << for float and double

---
 include/object/outputstream.h |  2 ++
 src/os/object/outputstream.cc | 12 ++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/include/object/outputstream.h b/include/object/outputstream.h
index 4a37977..70ebece 100644
--- a/include/object/outputstream.h
+++ b/include/object/outputstream.h
@@ -35,6 +35,8 @@ class OutputStream {
 	OutputStream & operator<<(long long number);
 	OutputStream & operator<<(void *pointer);
 	OutputStream & operator<<(const char *text);
+	OutputStream & operator<<(float number);
+	OutputStream & operator<<(double number);
 	OutputStream & operator<<(OutputStream & (*fun) (OutputStream &));
 
 	void setBase(uint8_t b);
diff --git a/src/os/object/outputstream.cc b/src/os/object/outputstream.cc
index 31b0da4..f257fa5 100644
--- a/src/os/object/outputstream.cc
+++ b/src/os/object/outputstream.cc
@@ -98,6 +98,18 @@ OutputStream & OutputStream::operator<<(long long number)
 	return *this;
 }
 
+OutputStream & OutputStream::operator<<(double number)
+{
+	*this << (float)number;
+	return *this;
+}
+
+OutputStream & OutputStream::operator<<(float number)
+{
+	this->printf_float(number);
+	return *this;
+}
+
 OutputStream & OutputStream::operator<<(void *pointer)
 {
 	unsigned short temp_base = base;
-- 
GitLab