diff options
Diffstat (limited to 'src/libs/3rdparty/yaml-cpp/include/yaml-cpp/node/detail/node_iterator.h')
-rw-r--r-- | src/libs/3rdparty/yaml-cpp/include/yaml-cpp/node/detail/node_iterator.h | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/src/libs/3rdparty/yaml-cpp/include/yaml-cpp/node/detail/node_iterator.h b/src/libs/3rdparty/yaml-cpp/include/yaml-cpp/node/detail/node_iterator.h index 088090fe74..49dcf958db 100644 --- a/src/libs/3rdparty/yaml-cpp/include/yaml-cpp/node/detail/node_iterator.h +++ b/src/libs/3rdparty/yaml-cpp/include/yaml-cpp/node/detail/node_iterator.h @@ -24,11 +24,11 @@ struct iterator_type { template <typename V> struct node_iterator_value : public std::pair<V*, V*> { - typedef std::pair<V*, V*> kv; + using kv = std::pair<V*, V*>; - node_iterator_value() : kv(), pNode(0) {} + node_iterator_value() : kv(), pNode(nullptr) {} explicit node_iterator_value(V& rhs) : kv(), pNode(&rhs) {} - explicit node_iterator_value(V& key, V& value) : kv(&key, &value), pNode(0) {} + explicit node_iterator_value(V& key, V& value) : kv(&key, &value), pNode(nullptr) {} V& operator*() const { return *pNode; } V& operator->() const { return *pNode; } @@ -36,26 +36,23 @@ struct node_iterator_value : public std::pair<V*, V*> { V* pNode; }; -typedef std::vector<node*> node_seq; -typedef std::vector<std::pair<node*, node*>> node_map; +using node_seq = std::vector<node *>; +using node_map = std::vector<std::pair<node*, node*>>; template <typename V> struct node_iterator_type { - typedef node_seq::iterator seq; - typedef node_map::iterator map; + using seq = node_seq::iterator; + using map = node_map::iterator; }; template <typename V> struct node_iterator_type<const V> { - typedef node_seq::const_iterator seq; - typedef node_map::const_iterator map; + using seq = node_seq::const_iterator; + using map = node_map::const_iterator; }; template <typename V> -class node_iterator_base - : public std::iterator<std::forward_iterator_tag, node_iterator_value<V>, - std::ptrdiff_t, node_iterator_value<V>*, - node_iterator_value<V>> { +class node_iterator_base { private: struct enabler {}; @@ -68,9 +65,13 @@ class node_iterator_base }; public: - typedef typename node_iterator_type<V>::seq SeqIter; - typedef typename node_iterator_type<V>::map MapIter; - typedef node_iterator_value<V> value_type; + using iterator_category = std::forward_iterator_tag; + using value_type = node_iterator_value<V>; + using difference_type = std::ptrdiff_t; + using pointer = node_iterator_value<V>*; + using reference = node_iterator_value<V>; + using SeqIter = typename node_iterator_type<V>::seq; + using MapIter = typename node_iterator_type<V>::map; node_iterator_base() : m_type(iterator_type::NoneType), m_seqIt(), m_mapIt(), m_mapEnd() {} @@ -172,8 +173,8 @@ class node_iterator_base MapIter m_mapIt, m_mapEnd; }; -typedef node_iterator_base<node> node_iterator; -typedef node_iterator_base<const node> const_node_iterator; +using node_iterator = node_iterator_base<node>; +using const_node_iterator = node_iterator_base<const node>; } } |