summaryrefslogtreecommitdiff
path: root/src/third_party/boost-1.69.0/libs/program_options/src/positional_options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/boost-1.69.0/libs/program_options/src/positional_options.cpp')
-rw-r--r--src/third_party/boost-1.69.0/libs/program_options/src/positional_options.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/third_party/boost-1.69.0/libs/program_options/src/positional_options.cpp b/src/third_party/boost-1.69.0/libs/program_options/src/positional_options.cpp
new file mode 100644
index 00000000000..72dc0d6b0dd
--- /dev/null
+++ b/src/third_party/boost-1.69.0/libs/program_options/src/positional_options.cpp
@@ -0,0 +1,53 @@
+// Copyright Vladimir Prus 2004.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt
+// or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#define BOOST_PROGRAM_OPTIONS_SOURCE
+#include <boost/program_options/config.hpp>
+
+#include <boost/program_options/positional_options.hpp>
+
+#include <boost/limits.hpp>
+
+#include <cassert>
+
+namespace boost { namespace program_options {
+
+ positional_options_description::positional_options_description()
+ {}
+
+ positional_options_description&
+ positional_options_description::add(const char* name, int max_count)
+ {
+ assert(max_count != -1 || m_trailing.empty());
+
+ if (max_count == -1)
+ m_trailing = name;
+ else {
+ m_names.resize(m_names.size() + max_count, name);
+ }
+ return *this;
+ }
+
+ unsigned
+ positional_options_description::max_total_count() const
+ {
+ return m_trailing.empty() ?
+ static_cast<unsigned>(m_names.size()) : (std::numeric_limits<unsigned>::max)();
+ }
+
+ const std::string&
+ positional_options_description::name_for_position(unsigned position) const
+ {
+ assert(position < max_total_count());
+
+ if (position < m_names.size())
+ return m_names[position];
+ else
+ return m_trailing;
+ }
+
+
+}}
+