summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2018-09-24 15:30:18 +0200
committerDaniel Friesel <derf@finalrewind.org>2018-09-24 15:30:18 +0200
commitcf31570dffa4ebfbb5544f5a5ccdcbae559fb524 (patch)
tree66ad080c1158cc58663f29330685056a092c5b4f
parent276b9a93c2e3b9ac58a9ddb5fff4c8299c459222 (diff)
outputstream: Add << for float and double
-rw-r--r--include/object/outputstream.h2
-rw-r--r--src/os/object/outputstream.cc12
2 files changed, 14 insertions, 0 deletions
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;