3rdparty
libpointmatcher
contrib
yaml-cpp-pm
src
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
{
13
class
StringCharSource
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
31
StringCharSource
&
operator ++
() {
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
YAML_PM
Definition:
aliasmanager.h:11
YAML_PM::StringCharSource::StringCharSource
StringCharSource(const char *str, std::size_t size)
Definition:
stringsource.h:16
YAML_PM::StringCharSource::operator!
bool operator!() const
Definition:
stringsource.h:20
YAML_PM::StringCharSource
Definition:
stringsource.h:13
YAML_PM::StringCharSource::m_str
const char * m_str
Definition:
stringsource.h:41
YAML_PM::StringCharSource::m_offset
std::size_t m_offset
Definition:
stringsource.h:43
YAML_PM::StringCharSource::operator+
const StringCharSource operator+(int i) const
Definition:
stringsource.h:22
YAML_PM::StringCharSource::operator[]
char operator[](std::size_t i) const
Definition:
stringsource.h:19
YAML_PM::StringCharSource::m_size
std::size_t m_size
Definition:
stringsource.h:42
YAML_PM::StringCharSource::operator+=
StringCharSource & operator+=(std::size_t offset)
Definition:
stringsource.h:36
YAML_PM::StringCharSource::operator++
StringCharSource & operator++()
Definition:
stringsource.h:31
mp2p_icp
Author(s):
autogenerated on Fri Dec 20 2024 03:46:00