summaryrefslogtreecommitdiff
path: root/src/pointerlist.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pointerlist.h')
-rw-r--r--src/pointerlist.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/pointerlist.h b/src/pointerlist.h
new file mode 100644
index 0000000..7c51ca6
--- /dev/null
+++ b/src/pointerlist.h
@@ -0,0 +1,26 @@
+// -*- c++ -*-
+// Distributed under the BSD 2-Clause License.
+// See accompanying file LICENSE for details.
+
+#include <string>
+#include <vector>
+#include <deque>
+#include <utility>
+
+// Maintains an (owning) list of string args and converts them to argc/argv
+// compatible arguments on request.
+// The returned pointers are guaranteed to be valid as long as the PointerList
+// object lifetime is not exceeded.
+class PointerList :
+ public std::deque<std::string>
+{
+public:
+ PointerList() = default;
+ PointerList(int argc, const char* argv[]);
+
+ //! Returns argc/argv pair from the current list of args
+ std::pair<int, const char**> get();
+
+private:
+ std::vector<const char*> argptrs;
+};