aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTaylor C. Richberger <taywee@gmx.com>2017-07-03 10:21:35 -0600
committerGitHub <noreply@github.com>2017-07-03 10:21:35 -0600
commit5c6c5dbee8c106d23af0185a61d730053e7fc25b (patch)
treeac2acf79b8b576846a72833d8b623f9faa394d6e
parentMerge pull request #22 from MtnViewJohn/vs2017_fixes (diff)
parentadded container typedefs to ValueFlagList (diff)
downloadargs.hxx-5c6c5dbee8c106d23af0185a61d730053e7fc25b.tar.xz
Merge pull request #24 from IvanKush/master
added container typedefs and begin/end methods to ValueFlagList
-rw-r--r--args.hxx48
1 files changed, 46 insertions, 2 deletions
diff --git a/args.hxx b/args.hxx
index b12c69c..7fd422f 100644
--- a/args.hxx
+++ b/args.hxx
@@ -1627,11 +1627,25 @@ namespace args
class ValueFlagList : public ValueFlagBase
{
private:
- List<T> values;
+ using Container = List<T>;
+ Container values;
Reader reader;
-
+
public:
+ typedef T value_type;
+ typedef typename Container::allocator_type allocator_type;
+ typedef typename Container::pointer pointer;
+ typedef typename Container::const_pointer const_pointer;
+ typedef T& reference;
+ typedef const T& const_reference;
+ typedef typename Container::size_type size_type;
+ typedef typename Container::difference_type difference_type;
+ typedef typename Container::iterator iterator;
+ typedef typename Container::const_iterator const_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+
ValueFlagList(Group &group_, const std::string &name_, const std::string &help_, Matcher &&matcher_, const List<T> &defaultValues_ = List<T>()): ValueFlagBase(name_, help_, std::move(matcher_)), values(defaultValues_)
{
group_.Add(*this);
@@ -1670,6 +1684,36 @@ namespace args
ValueFlagBase::Reset();
values.clear();
}
+
+ iterator begin() noexcept
+ {
+ return values.begin();
+ }
+
+ const_iterator begin() const noexcept
+ {
+ return values.begin();
+ }
+
+ const_iterator cbegin() const noexcept
+ {
+ return values.cbegin();
+ }
+
+ iterator end() noexcept
+ {
+ return values.end();
+ }
+
+ const_iterator end() const noexcept
+ {
+ return values.end();
+ }
+
+ const_iterator cend() const noexcept
+ {
+ return values.cend();
+ }
};
/** A mapping value flag class