Browse Source

Add a read-to-out-value option for cli::prompt.

Sam Jaffe 4 years ago
parent
commit
b12768fb0c
1 changed files with 7 additions and 2 deletions
  1. 7 2
      include/cli/prompt.h

+ 7 - 2
include/cli/prompt.h

@@ -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;
   }
 };