stringsource.h
Go to the documentation of this file.
1 #ifndef STRINGSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66_PM
2 #define STRINGSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66_PM
3 
4 #if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
5 #pragma once
6 #endif
7 
8 
9 #include <cstddef>
10 
11 namespace YAML_PM
12 {
14  {
15  public:
16  StringCharSource(const char *str, std::size_t size): m_str(str), m_size(size), m_offset(0) {}
17 
18  operator bool() const { return m_offset < m_size; }
19  char operator [] (std::size_t i) const { return m_str[m_offset + i]; }
20  bool operator !() const { return !static_cast<bool>(*this); }
21 
22  const StringCharSource operator + (int i) const {
23  StringCharSource source(*this);
24  if(static_cast<int> (source.m_offset) + i >= 0)
25  source.m_offset += i;
26  else
27  source.m_offset = 0;
28  return source;
29  }
30 
32  ++m_offset;
33  return *this;
34  }
35 
36  StringCharSource& operator += (std::size_t offset) {
37  m_offset += offset;
38  return *this;
39  }
40  private:
41  const char *m_str;
42  std::size_t m_size;
43  std::size_t m_offset;
44  };
45 }
46 
47 #endif // STRINGSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66_PM
StringCharSource & operator+=(std::size_t offset)
Definition: stringsource.h:36
const StringCharSource operator+(int i) const
Definition: stringsource.h:22
StringCharSource(const char *str, std::size_t size)
Definition: stringsource.h:16
char operator[](std::size_t i) const
Definition: stringsource.h:19
StringCharSource & operator++()
Definition: stringsource.h:31


libpointmatcher
Author(s):
autogenerated on Sat May 27 2023 02:38:03