src/DataTypeReader.h
branchv_0
changeset 18 e11f1ad20826
parent 15 09ca53671b28
child 29 755978b0935c
--- a/src/DataTypeReader.h	Mon Aug 27 00:06:14 2018 +0200
+++ b/src/DataTypeReader.h	Mon Sep 03 23:40:12 2018 +0200
@@ -1,5 +1,8 @@
 #pragma once
 
+#include <sstream>
+#include <functional>
+
 #include "DataTypeReaderBase.h"
 
 namespace relpipe {
@@ -20,6 +23,16 @@
 		return toString(readValue(input));
 	}
 
+	virtual void read(std::istream &input, std::function<void(const void *, const std::type_info&) > handler) override {
+		T value = readValue(input);
+		handler(&value, typeid (T));
+	}
+
+	virtual void read(std::istream &input, std::function<void(const string_t&, const void *, const std::type_info&) > handler) override {
+		T value = readValue(input);
+		handler(toString(value), &value, typeid (T));
+	}
+
 	virtual string_t toString(const T& value) = 0;
 
 };