7#ifndef ARGS__TYPES_HPP__INCLUDED
8#define ARGS__TYPES_HPP__INCLUDED
10#ifdef ARGS_WSTRING_BUILD
17#elif defined(ARGS_DEQUE)
23#elif defined(ARGS_QSTRING_BUILD)
30#elif defined(ARGS_DEQUE)
43#elif defined(ARGS_DEQUE)
54#ifdef ARGS_WSTRING_BUILD
57using String = std::wstring;
60using Char = String::value_type;
76#elif defined(ARGS_DEQUE)
82#elif defined(ARGS_QSTRING_BUILD)
93 using size_type = int;
111 String(
const QString &other)
133 String(
const QByteArray &ba)
143 operator QString()
const
148 inline bool empty()
const
150 return m_str.isEmpty();
153 static const int npos = -1;
155 inline int find(
Char ch)
const
157 return m_str.indexOf(ch);
160 inline int find(
const String &str)
const
162 return m_str.indexOf(str.m_str);
165 QString::iterator begin()
167 return m_str.begin();
170 QString::iterator end()
175 QString::const_iterator begin()
const
177 return m_str.begin();
180 QString::const_iterator end()
const
185 QString::const_iterator cbegin()
const
187 return m_str.begin();
190 QString::const_iterator cend()
const
195 size_type length()
const
197 return m_str.length();
200 String substr(size_type pos,
201 size_type count = npos)
const
203 return m_str.mid(pos, count);
206 friend bool operator==(
const String &s1,
209 return (s1.m_str == s2.m_str);
212 friend bool operator!=(
const String &s1,
215 return (s1.m_str != s2.m_str);
221 return String(s1.m_str + s2.m_str);
227 return String(s1.m_str + s2);
230 friend String operator+(
const char *s1,
233 return String(s1 + s2.m_str);
239 return String(s1.m_str + ch);
242 friend String operator+(
const char ch,
245 return String(ch + s2.m_str);
248 friend bool operator<(
const String &s1,
251 return s1.m_str < s2.m_str;
262 const Char operator[](size_type pos)
const
269 m_str.append(other.m_str);
274 String &append(size_type count,
277 m_str.append(QString(count, ch));
295 static QTextStream stream(stdout);
305#elif defined(ARGS_DEQUE)
317using Char = String::value_type;
333#elif defined(ARGS_DEQUE)
354 : m_delete(shouldIDelete)
Deleter(bool shouldIDelete)
void operator()(T *obj) noexcept
std::ostream OutStreamType
Out stream type.
std::string String
String type.
String::value_type Char
Char type.
std::vector< String > StringList
List of strings.