From 1ba905ca136c0c0ca03facc689e7514928c8ab3d Mon Sep 17 00:00:00 2001 From: Ivan Kush Date: Mon, 3 Jul 2017 18:40:46 +0300 Subject: added container typedefs to ValueFlagList --- args.hxx | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file 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 values; + using Container = List; + 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 reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; + ValueFlagList(Group &group_, const std::string &name_, const std::string &help_, Matcher &&matcher_, const List &defaultValues_ = List()): 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 -- cgit v1.2.1