|
|
@@ -27,6 +27,11 @@ public:
|
|
|
|
|
|
template <typename T> T read(std::istream & in = std::cin) const {
|
|
|
T rval{};
|
|
|
+ read(rval, in);
|
|
|
+ return rval;
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T> T & read(T & out, std::istream & in = std::cin) const {
|
|
|
while (true) {
|
|
|
input_prompt_->print(std::cout);
|
|
|
std::string data;
|
|
|
@@ -34,11 +39,11 @@ public:
|
|
|
break;
|
|
|
}
|
|
|
std::stringstream ss{data};
|
|
|
- if (ss >> rval) {
|
|
|
+ if (ss >> out) {
|
|
|
break;
|
|
|
}
|
|
|
};
|
|
|
- return rval;
|
|
|
+ return out;
|
|
|
}
|
|
|
};
|
|
|
|