libqi-api  2.8.7.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
anyiterator.hpp
Go to the documentation of this file.
1 #pragma once
2 /*
3 ** Copyright (C) 2013 Aldebaran Robotics
4 ** See COPYING for the license
5 */
6 
7 #ifndef _QI_TYPE_DETAIL_ANYITERATOR_HPP_
8 #define _QI_TYPE_DETAIL_ANYITERATOR_HPP_
9 
11 
12 namespace qi {
13 
16  class QI_API AnyIterator: public AnyValue
17  {
18  public:
22  using difference_type = ptrdiff_t;
23  using iterator_category = std::forward_iterator_tag;
24 
25  AnyIterator();
26  AnyIterator(const AnyReference& p);
27  AnyIterator(const AnyValue& v);
28 
29  template<typename T>
30  explicit AnyIterator(const T& ref);
31 
33  AnyIterator& operator++();
35  AnyIterator operator++(int);
37  AnyReference operator*();
38  };
39 
40  QI_API bool operator==(const AnyIterator& a, const AnyIterator& b);
41  QI_API bool operator!=(const AnyIterator& a, const AnyIterator& b);
42 }
43 
45 
46 #endif // _QI_TYPE_DETAIL_ANYITERATOR_HPP_
#define QI_API
Definition: api.hpp:33
std::forward_iterator_tag iterator_category
Definition: anyiterator.hpp:23
ptrdiff_t difference_type
Definition: anyiterator.hpp:22
bool operator==(const Signature &lhs, const Signature &rhs)
bool operator!=(const Signature &lhs, const Signature &rhs)
Definition: signature.hpp:157