diff --git a/README.md b/README.md index 6a1925a..68fc199 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Library banner +[Library banner] [![license](http://img.shields.io/github/license/schmouk/pythonic-cpp-strings.svg?style=plastic&labelColor=blueviolet&color=lightblue)](https://github.com/schmouk/pythonic-cpp-strings/license) [![Latest release](http://img.shields.io/github/release/schmouk/pythonic-cpp-strings.svg?style=plastic&labelColor=blueviolet&color=success)](https://github.com/schmouk/pythonic-cpp-strings/releases) [![code_coverage](https://img.shields.io/badge/code_coverage-100%25-success?style=plastic&labelColor=blueviolet)]() [![tests](https://img.shields.io/badge/tests-passing-success?style=plastic&labelColor=blueviolet)]() @@ -75,9 +75,9 @@ This `.cpp` file is a great place to see **cpp-strings** code in action. Each st --- -## Latest Release - Release 1.0 (1.0.2.232) 2025/07 +## Latest Release - Release 1.0 (1.0.4 - 2025/10) -The coding of this project started by March 2023 and had been put in standby mode for some months - no time to work on it. The very first release is now availble (since July 2025), as **Release 1.0.2**. +The coding of this project started by March 2023 and had been put in standby mode for some months - no time to work on it. The very first release is now availble (since July 2025), as **Release 1.0.4**. This release has been fully tested. Code coverage is 100%. @@ -100,7 +100,7 @@ N.B. "*planned for a next release*" does not imply that a fixed date is planned --- ## Documentation -The **cpp-strings** HTML documentation is available in subdirectory `cpp-strings/html`. Click on file `index.html` there from your local file manager to browse its content. +The **cpp-strings** HTML documentation is available in subdirectory `./documentation`. Click on file `index.html` there from your local file manager to browse its content. It has then been produced with the great utility **doxygen** developed by Vicente Hernando (the doxygen Github repository can be accessed [here](https://github.com/doxygen/doxygen), and the utility can be downloaded from there: [https://www.doxygen.nl/download.html](https://www.doxygen.nl/download.html)). diff --git a/cpp-strings/cpp-strings.cfg b/cpp-strings.cfg similarity index 92% rename from cpp-strings/cpp-strings.cfg rename to cpp-strings.cfg index 847ae88..84af6c7 100644 --- a/cpp-strings/cpp-strings.cfg +++ b/cpp-strings.cfg @@ -27,7 +27,7 @@ # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = "cpp-strings" -PROJECT_NUMBER = "1.0.0" +PROJECT_NUMBER = "1.0.4" PROJECT_BRIEF = "Pythonic c++ strings" OUTPUT_DIRECTORY = @@ -58,9 +58,9 @@ WARN_NO_PARAMDOC = NO #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = ./ ../ +INPUT = ./cpp-strings INPUT_ENCODING = UTF-8 -USE_MDFILE_AS_MAINPAGE = ../README.md +USE_MDFILE_AS_MAINPAGE = ./README.md #--------------------------------------------------------------------------- # Configuration options related to source browsing @@ -72,7 +72,7 @@ REFERENCES_RELATION = YES # Configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES -HTML_OUTPUT = html +HTML_OUTPUT = ./documentation HTML_FILE_EXTENSION = .html HTML_COLORSTYLE_HUE = 220 HTML_COLORSTYLE_SAT = 100 @@ -89,6 +89,11 @@ EXT_LINKS_IN_WINDOW = NO SEARCHENGINE = YES SERVER_BASED_SEARCH = NO EXTERNAL_SEARCH = NO +SORT_GROUP_NAMES = YES +SOURCE_BROWSER = NO +VERBATIM_HEADERS = NO +WARN_IF_INCOMPLETE_DOC = NO +WARN_IF_UNDOCUMENTED = NO #--------------------------------------------------------------------------- # Configuration options related to the LaTeX output diff --git a/cpp-strings/cppstrings.h b/cpp-strings/cppstrings.h index e368f9f..82f275e 100644 --- a/cpp-strings/cppstrings.h +++ b/cpp-strings/cppstrings.h @@ -835,7 +835,7 @@ namespace pcs // i.e. "pythonic c++ strings" * * Decimal characters are those that can be used to form numbers in * base 10, e.g. U+0660, ARABIC-INDIC DIGIT ZERO. Formally a decimal - * character is a character in the Unicode General Category “Nd”. + * character is a character in the Unicode General Category �Nd�. */ [[nodiscard]] inline const bool isdecimal() const noexcept @@ -883,7 +883,7 @@ namespace pcs // i.e. "pythonic c++ strings" * the currently implemented rule is this simpler one: * * identifier ::= ID_Start id_continue* - * id_continue ::= ID_Start | + * id_continue ::= ID_Start | decimal_number */ [[nodiscard]] inline const bool isidentifier() const noexcept @@ -1654,18 +1654,18 @@ namespace pcs // i.e. "pythonic c++ strings" * Line breaks are not included in the resulting list unless keepends is given and true. * * This method splits on the following line boundaries. In particular, the boundaries are a superset of universal newlines: - * \n Line Feed - * \r Carriage Return - * \r\n Carriage Return + Line Feed - * \v or \x0b Line Tabulation - * \f or \x0c Form Feed - * \x1c File Separator - * \x1d Group Separator - * \x1e Record Separator + * '\n' Line Feed + * '\r' Carriage Return + * '\r\n' Carriage Return + Line Feed + * '\v' or '\x0b' Line Tabulation + * '\f' or '\x0c' Form Feed + * '\x1c' File Separator + * '\x1d' Group Separator + * '\x1e' Record Separator * Next separators values, detected by Python method splitlines(), are currently NOT detected by CppStrings - * \x85 Next Line (C1 Control Code) - * \u2028 Line Separator - * \u2029 Paragraph Separator + * '\x85' Next Line (C1 Control Code) + * '\u2028' Line Separator + * '\u2029' Paragraph Separator */ [[nodiscard]] std::vector splitlines(const bool keep_end = false) const noexcept diff --git a/cpp-strings/html/cppstrings_8h_source.html b/cpp-strings/html/cppstrings_8h_source.html deleted file mode 100644 index 6f058ee..0000000 --- a/cpp-strings/html/cppstrings_8h_source.html +++ /dev/null @@ -1,2231 +0,0 @@ - - - - - - - -cpp-strings: cppstrings.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
cpp-strings 1.0.0 -
-
Pythonic c++ strings
-
-
- - - - - - - -
-
- -
-
-
- -
-
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
cppstrings.h
-
-
-
1#pragma once
-
22
-
23//=============================================================
-
24#include <algorithm>
-
25#include <array>
-
26#include <cassert>
-
27#include <cctype>
-
28#include <cwctype>
-
29#include <format>
-
30#include <limits>
-
31#include <map>
-
32#include <ranges>
-
33#include <span>
-
34#include <stdexcept>
-
35#include <type_traits>
-
36#include <vector>
-
37
-
38
-
39
-
40namespace pcs // i.e. "pythonic c++ strings"
-
41{
-
42 //=============================================================
-
43 // Forward declarations
-
44
-
45 // base class -- not to be directly instantiated, see belowing specializations instead
-
46 template<
-
47 class CharT,
-
48 class TraitsT = std::char_traits<CharT>,
-
49 class AllocatorT = std::allocator<CharT>
-
50 > class CppStringT;
-
51
-
52 // specializations of the base class -- these are the ones that should be instantiated by user.
- - -
55
-
56
-
57#if defined(_MSC_VER)
-
58# pragma warning(push)
-
59# pragma warning(disable: 4455) // to avoid boring warnings with litteral operators definitions
-
60#endif
-
61
-
62 // litteral operators
-
63 inline CppString operator""_cs(const char* str, std::size_t len);
-
64 inline CppWString operator""_cs(const wchar_t* str, std::size_t len);
-
65
-
66
-
67 // slices -- to be used with operator CppStringT::operator().
-
68 template<typename IntT = std::int64_t>
-
69 requires std::is_signed_v<IntT>
-
70 class Slice;
-
71
-
72 template<typename IntT = std::int64_t>
-
73 requires std::is_signed_v<IntT>
-
74 struct StartSlice;
-
75
-
76 template<typename IntT = std::int64_t>
-
77 requires std::is_signed_v<IntT>
-
78 struct StopSlice;
-
79
-
80 template<typename IntT = std::int64_t>
-
81 requires std::is_signed_v<IntT>
-
82 struct StepSlice;
-
83
-
84 template<typename IntT = std::int64_t>
-
85 requires std::is_signed_v<IntT>
-
86 struct StartStopSlice;
-
87
-
88 template<typename IntT = std::int64_t>
-
89 requires std::is_signed_v<IntT>
-
90 struct StartStepSlice;
-
91
-
92 template<typename IntT = std::int64_t>
-
93 requires std::is_signed_v<IntT>
-
94 struct StopStepSlice;
-
95
-
96
-
97 // chars classifications -- not to be directly called, see respective specializations at the very end of this module.
-
98 template<class CharT>
-
99 inline const bool is_alpha(const CharT ch) noexcept;
-
100
-
101 template<class CharT>
-
102 inline const bool is_ascii(const CharT ch) noexcept;
-
103
-
104 template<class CharT>
-
105 inline const bool is_decimal(const CharT ch) noexcept;
-
106
-
107 template<class CharT>
-
108 inline const bool is_digit(const CharT ch) noexcept;
-
109
-
110 template<class CharT>
-
111 inline const bool is_id_continue(const CharT ch) noexcept;
-
112
-
113 template<class CharT>
-
114 inline const bool is_id_start(const CharT ch) noexcept;
-
115
-
116 template<class CharT>
-
117 inline const bool is_lower(const CharT ch) noexcept;
-
118
-
119 template<class CharT>
-
120 inline const bool is_numeric(const CharT ch) noexcept;
-
121
-
122 template<class CharT>
-
123 inline const bool is_printable(const CharT ch) noexcept;
-
124
-
125 template<class CharT>
-
126 inline const bool is_punctuation(const CharT ch) noexcept;
-
127
-
128 template<class CharT>
-
129 inline const bool is_space(const CharT ch) noexcept;
-
130
-
131 template<class CharT>
-
132 inline const bool is_upper(const CharT ch) noexcept;
-
133
-
134 template<class CharT>
-
135 inline const CharT swap_case(const CharT ch) noexcept;
-
136
-
137 template<class CharT>
-
138 inline const CharT to_lower(const CharT ch) noexcept;
-
139
-
140 template<class CharT>
-
141 inline const CharT to_upper(const CharT ch) noexcept;
-
142
-
143
-
144 //===== CppStringT<> ======================================
-
164 template<class CharT, class TraitsT, class AllocatorT>
-
165 class CppStringT : public std::basic_string<CharT, TraitsT, AllocatorT>
-
166 {
-
167 public:
-
168 //=== Wrappers ========================================
-
169 using MyBaseClass = std::basic_string<CharT, TraitsT, AllocatorT>;
-
170
-
171 using traits_type = MyBaseClass::traits_type;
-
172 using value_type = MyBaseClass::value_type;
-
173 using allocator_type = MyBaseClass::allocator_type;
-
174 using size_type = MyBaseClass::size_type;
-
175 using difference_type = MyBaseClass::difference_type;
-
176 using reference = MyBaseClass::reference;
-
177 using const_reference = MyBaseClass::const_reference;
-
178 using pointer = MyBaseClass::pointer;
-
179 using const_pointer = MyBaseClass::const_pointer;
-
180 using iterator = MyBaseClass::iterator;
-
181 using const_iterator = MyBaseClass::const_iterator;
-
182 using reverse_iterator = MyBaseClass::reverse_iterator;
-
183 using const_reverse_iterator = MyBaseClass::const_reverse_iterator;
-
184
-
185
-
186 //=== Translation Table ===============================
- -
189 {
-
190 public:
-
191 //--- wrappers ------------------------------------
-
192 using key_type = CharT;
-
193 using value_type = CppStringT;
-
194
-
195 //--- Constructors / destructor -------------------
-
197 inline TransTable(const std::map<key_type, value_type> trans_table)
-
198 : m_table{ trans_table }
-
199 {}
-
200
-
207 TransTable(const CppStringT& keys, const CppStringT& values)
-
208 {
-
209 assert(keys.size() == values.size());
-
210 auto val_it = values.cbegin();
-
211 for (const auto k : keys)
-
212 m_table[k] = CppStringT(*val_it++);
-
213 }
-
214
-
223 TransTable(const CppStringT& keys, const CppStringT& values, const CppStringT& not_translated)
-
224 {
-
225 assert(keys.size() == values.size());
-
226 auto val_it = values.cbegin();
-
227 for (const auto k : keys)
-
228 m_table[k] = CppStringT(*val_it++);
-
229 for (const auto k : not_translated)
-
230 m_table[k] = CppStringT();
-
231 }
-
232
-
239 inline TransTable(const CppStringT& keys, const std::initializer_list<CppStringT>& values)
-
240 {
-
241 assert(keys.size() == values.size());
-
242 auto val_it = values.begin();
-
243 for (const auto k : keys)
-
244 m_table[k] = *val_it++;
-
245 }
-
246
-
255 inline TransTable(const CppStringT& keys, const std::initializer_list<CppStringT> values, const CppStringT& not_translated)
-
256 {
-
257 assert(keys.size() == values.size());
-
258 auto val_it = values.begin();
-
259 for (const auto k : keys)
-
260 m_table[k] = *val_it++;
-
261 for (const auto k : not_translated)
-
262 m_table[k] = CppStringT();
-
263 }
-
264
-
271 inline TransTable(const CharT* keys, const CharT* values)
-
272 {
-
273 while (*keys && *values)
-
274 m_table[*keys++] = value_type(*values++);
-
275 }
-
276
-
285 inline TransTable(const CharT* keys, const CharT* values, const CharT* not_translated)
-
286 {
-
287 while (*keys && *values)
-
288 m_table[*keys++] = value_type(*values++);
-
289 while (*not_translated)
-
290 m_table[*not_translated++] = CppStringT();
-
291 }
-
292
-
299 template<class KeyIt, class ValueIt>
-
300 inline TransTable(KeyIt first_key, KeyIt last_key, ValueIt first_value, ValueIt last_value)
-
301 {
-
302 KeyIt key_it{ first_key };
-
303 ValueIt val_it{ first_value };
-
304 while (key_it != last_key && val_it != last_value)
-
305 m_table[*key_it++] = value_type(*val_it++);
-
306 }
-
307
-
316 template<class Key1It, class ValueIt, class Key2It>
-
317 inline TransTable(Key1It first_key, Key1It last_key,
-
318 ValueIt first_value, ValueIt last_value,
-
319 Key2It first_not_translated, Key2It last_not_translated)
-
320 {
-
321 Key1It key1_it{ first_key };
-
322 ValueIt val_it{ first_value };
-
323 while (key1_it != last_key && val_it != last_value)
-
324 m_table[*key1_it++] = value_type(*val_it++);
-
325 Key2It key2_it{ first_not_translated };
-
326 while (key2_it != last_not_translated)
-
327 m_table[*key2_it++] = CppStringT();
-
328 }
-
329
-
336 /**/
-
337 template<class StringViewLike>
-
338 explicit TransTable(const StringViewLike& keys, const StringViewLike& values)
-
339 {
-
340 assert(keys.size() == values.size());
-
341 auto val_it = values.cbegin();
-
342 for (const auto k : keys)
-
343 m_table[(*k)[0]] = value_type(*val_it++);
-
344 }
-
345
-
346 inline TransTable() noexcept = default;
-
347 inline TransTable(const TransTable&) noexcept = default;
-
348 inline TransTable(TransTable&&) noexcept = default;
-
349
-
350 inline ~TransTable() noexcept = default;
-
351
-
352 //--- operators -----------------------------------
-
353 inline TransTable& operator= (const TransTable&) noexcept = default;
-
354 inline TransTable& operator= (TransTable&&) noexcept = default;
-
355
-
357 inline TransTable& operator= (const std::map<key_type, value_type>& trans_table) noexcept
-
358 {
-
359 m_table = trans_table;
-
360 return *this;
-
361 }
-
362
-
364 [[nodiscard]]
-
365 inline value_type operator[] (const key_type ch) noexcept
-
366 {
-
367 auto it = m_table.find(ch);
-
368 if (it != m_table.end()) [[likely]] {
-
369 return it->second;
-
370 }
-
371 else [[unlikely]] {
-
372 return ch;
-
373 }
-
374 }
-
375
-
376 inline std::map<typename key_type, typename value_type>& get_table() noexcept
-
377 {
-
378 return m_table;
-
379 }
-
380
-
381 private:
-
382 std::map<typename key_type, typename value_type> m_table{}; // the internal storage of the translation table. Access it via the indexing operator.
-
383
-
384 };
-
385
-
386
-
387 //=== Constructors / Destructor =======================
-
388 inline CppStringT() : MyBaseClass() {} // #1
-
389 inline CppStringT(const CppStringT& other) : MyBaseClass(other) {} // #2
-
390 inline CppStringT(const CppStringT& other, const AllocatorT& alloc) : MyBaseClass(other, alloc) {} // #3
-
391 inline CppStringT(CppStringT&& other) noexcept : MyBaseClass(other) {} // #4
-
392 inline CppStringT(CppStringT&& other, const AllocatorT& alloc) noexcept : MyBaseClass(other, alloc) {} // #5
-
393 inline CppStringT(MyBaseClass::size_type count, CharT ch) : MyBaseClass(count, ch) {} // #6
-
394 inline CppStringT(const CppStringT& other, size_type pos) : MyBaseClass(other, pos) {} // #7
-
395 inline CppStringT(const CppStringT& other, size_type pos, size_type count) noexcept : MyBaseClass(other, pos, count) {} // #8
-
396 inline CppStringT(const CharT* s) // #9
-
397 : MyBaseClass(s ? s : CppStringT().c_str())
-
398 {}
-
399 inline CppStringT(const CharT* s, size_type count) // #10
-
400 : MyBaseClass(s ? s : CppStringT().c_str(), count)
-
401 {}
-
402 inline CppStringT(std::initializer_list<CharT> ilist) : MyBaseClass(ilist) {} // #11
-
403
-
404 inline CppStringT(const CharT ch) : MyBaseClass(1, ch) {} // #19
-
405
-
406 inline CppStringT(const MyBaseClass& other) : MyBaseClass(other) {} // #12
-
407 inline CppStringT(const MyBaseClass& other, const AllocatorT& alloc) : MyBaseClass(other, alloc) {} // #13
-
408 inline CppStringT(MyBaseClass&& other) : MyBaseClass(other) {} // #14
-
409 inline CppStringT(MyBaseClass&& other, const AllocatorT& alloc) : MyBaseClass(other, alloc) {} // #15
-
410
-
411 template<class InputIt>
-
412 inline CppStringT(InputIt first, InputIt last) : MyBaseClass(first, last) {} // #16
-
413
-
414 template<class StringViewLike>
-
415 explicit CppStringT(StringViewLike& svl) : MyBaseClass(svl) {} // #17
-
416
-
417 template<class StringViewLike>
-
418 CppStringT(StringViewLike& svl, size_type pos, size_type n) : MyBaseClass(svl, pos, n) {} // #18
-
419
-
420 inline ~CppStringT() noexcept = default;
-
421
-
422
-
423 //=== Assignment operators ============================
-
424 CppStringT& operator= (const CppStringT&) noexcept = default;
-
425 CppStringT& operator= (CppStringT&&) noexcept = default;
-
426
-
427
-
428 //=== Exceptions ======================================
-
429 class NotFoundException : public std::logic_error
-
430 {
-
431 public:
-
432 using MyBaseClass = std::logic_error;
-
433
-
434 inline NotFoundException(const std::string& what_arg) : MyBaseClass(what_arg) {}
-
435 inline NotFoundException(const char* what_arg) : MyBaseClass(what_arg) {}
-
436 };
-
437
-
438
-
439 //=== Methods =========================================
-
440
-
441 //--- capitalize() ------------------------------------
-
443 inline CppStringT capitalize() noexcept
-
444 {
-
445 CppStringT res(*this);
-
446 if (!res.empty()) [[likely]] {
-
447 res.lower();
-
448 res[0] = pcs::to_upper(res[0]);
-
449 }
-
450 return res;
-
451 }
-
452
-
453
-
454 //--- center() ----------------------------------------
-
461 [[nodiscard]]
-
462 CppStringT center(const size_type width, const value_type fillch = value_type(' ')) const noexcept
-
463 {
-
464 const size_type len{ this->size() };
-
465 if (width <= len) [[unlikely]]
-
466 return CppStringT(*this);
-
467
-
468 const size_type half{ (width - len) / 2 };
-
469 return CppStringT(half, fillch) + *this + CppStringT(width - half - len, fillch);
-
470 }
-
471
-
472
-
473 //--- contains() --------------------------------------
-
478 [[nodiscard]]
-
479 constexpr bool contains(const CppStringT& substr) const noexcept
-
480 {
-
481 if (substr.empty()) [[unlikely]]
-
482 // the empty string is always contained in any string
-
483 return true;
-
484
-
485#if (defined(_HAS_CXX23) && _HAS_CXX23) || (!defined(_HAS_CXX23) && __cplusplus >= 202302L)
-
486 // c++23 and above already defines this method
-
487 return MyBaseClass::contains(substr);
-
488#else
-
489 // up to c++20, we have to implement this method
-
490 const size_type substr_width{ substr.size() };
-
491 const size_type width{ this->size() };
-
492
-
493 if (substr_width > width) [[unlikely]]
-
494 return false;
-
495
-
496 for (size_type index = 0; index <= width - substr_width; ++index) [[likely]] {
-
497 if (substr == this->substr(index, substr_width))
-
498 return true;
-
499 }
-
500
-
501 return false;
-
502#endif
-
503 }
-
504
-
505
-
506 //--- contains_n() ------------------------------------
-
511 [[nodiscard]]
-
512 inline constexpr bool contains_n(const CppStringT& sub, const size_type start, const size_type count = -1) const noexcept
-
513 {
-
514 try {
-
515 return this->substr(start, count).contains(sub);
-
516 }
-
517 catch (...) {
-
518 return false;
-
519 }
-
520 }
-
521
-
522
-
523 //--- count() -----------------------------------------
-
525 [[nodiscard]]
-
526 constexpr size_type count(const CppStringT& sub, const size_type start = 0, const size_type end = -1) const noexcept
-
527 {
-
528 size_type n = 0;
-
529 CppStringT tmp{ this->substr(start, std::min(this->size(), end) - start + 1) };
-
530
-
531 size_type start_{ 0 };
-
532 size_type end_{ tmp.size() };
-
533
-
534 while ((start_ = tmp.find(sub, start_, end_)) != CppStringT::npos) {
-
535 start_ += sub.size();
-
536 end_ -= start_;
-
537 tmp = tmp.substr(start_, std::min(tmp.size(), end_) + 1);
-
538 start_ = 0;
-
539 n++;
-
540 }
-
541
-
542 return n;
-
543 }
-
544
-
545
-
546 //--- count_n() ---------------------------------------
-
548 [[nodiscard]]
-
549 inline constexpr size_type count_n(const CppStringT& sub, const size_type start, const size_type length) const noexcept
-
550 {
-
551 return count(sub, start, start + length - 1);
-
552 }
-
553
-
555 [[nodiscard]]
-
556 inline constexpr size_type count_n(const CppStringT& sub, const size_type length) const noexcept
-
557 {
-
558 return count(sub, 0, length - 1);
-
559 }
-
560
-
561
-
562 //--- endswith() --------------------------------------
-
564 [[nodiscard]]
-
565 inline const bool endswith(const CppStringT& suffix, const size_type start, const size_type end) const noexcept
-
566 {
-
567 return this->substr(start, end - start + 1).MyBaseClass::ends_with(suffix);
-
568 }
-
569
-
571 [[nodiscard]]
-
572 inline const bool endswith(const CppStringT& suffix, const size_type end) const noexcept
-
573 {
-
574 return this->substr(0, end).MyBaseClass::ends_with(suffix);
-
575 }
-
576
-
578 [[nodiscard]]
-
579 inline const bool endswith(const CppStringT& suffix) const noexcept
-
580 {
-
581 return static_cast<const bool>(MyBaseClass::ends_with(suffix));
-
582 }
-
583
-
585 [[nodiscard]]
-
586 const bool endswith(const std::initializer_list<CppStringT>& suffixes, const size_type start, const size_type end) const noexcept
-
587 {
-
588 if (start > end) [[unlikely]]
-
589 return false;
-
590
-
591 CppStringT tmp(this->substr(start, end - start + 1));
-
592 for (auto& suffix : suffixes) {
-
593 if (tmp.ends_with(suffix)) [[unlikely]]
-
594 return true;
-
595 }
-
596 return false;
-
597 }
-
598
-
599
-
600 //--- endswith_n() ------------------------------------
-
602 [[nodiscard]]
-
603 inline const bool endswith_n(const CppStringT& suffix, const size_type start, const size_type count) const noexcept
-
604 {
-
605 return endswith(suffix, start, start + count - 1);
-
606 }
-
607
-
609 [[nodiscard]]
-
610 inline const bool endswith_n(const CppStringT& suffix, const size_type count) const noexcept
-
611 {
-
612 return endswith(suffix, 0, count - 1);
-
613 }
-
614
-
616 [[nodiscard]]
-
617 inline const bool endswith_n(const std::initializer_list<CppStringT>& suffixes, const size_type start, const size_type count) const noexcept
-
618 {
-
619 return endswith(suffixes, start, start + count - 1);
-
620 }
-
621
-
622
-
623 //--- expand_tabs() -----------------------------------
-
625 [[nodiscard]]
-
626 CppStringT expand_tabs(const size_type tabsize = 8) const noexcept
-
627 {
-
628 const size_type tabsize_{ tabsize == 0 ? 1 : tabsize };
-
629 CppStringT ret{};
-
630
-
631 std::size_t current_pos{ 0 };
-
632 for (const value_type ch : *this) {
-
633 if (ch == value_type('\t')) [[unlikely]] {
-
634 do {
-
635 ret += value_type(' ');
-
636 current_pos++;
-
637 } while (current_pos % tabsize_ != 0);
-
638 }
-
639 else if (ch == value_type('\n') || ch == value_type('\r')) [[unlikely]] {
-
640 ret += ch;
-
641 current_pos = 0;
-
642 }
-
643 else [[likely]] {
-
644 ret += ch;
-
645 current_pos++;
-
646 }
-
647 }
-
648
-
649 return ret;
-
650 }
-
651
-
652
-
653 //--- find() ------------------------------------------
-
665 [[nodiscard]]
-
666 constexpr size_type find(const CppStringT& sub, const size_type start = 0, const size_type end = -1) const noexcept
-
667 {
-
668 const size_type end_{ (end == -1) ? this->size() : end };
-
669
-
670 if (start > end_) [[unlikely]]
-
671 return CppStringT::npos;
-
672 else [[likely]]
-
673 return find_n(sub, start, end_ - start + 1);
-
674 }
-
675
-
676
-
677 //--- find_n() ----------------------------------------
-
690 [[nodiscard]]
-
691 inline constexpr size_type find_n(const CppStringT& sub, const size_type start, const size_type count) const noexcept
-
692 {
-
693 constexpr size_type npos{ CppStringT::npos };
-
694
-
695 try {
-
696 const CppStringT sub_str{ this->substr(start, count) };
-
697 const size_type found_pos{ sub_str.MyBaseClass::find(sub) };
-
698
-
699 return (found_pos == npos) ? npos : found_pos + start;
-
700 }
-
701 catch (...) {
-
702 return npos;
-
703 }
-
704 }
-
705
-
718 [[nodiscard]]
-
719 inline constexpr size_type find_n(const CppStringT& sub, const size_type count) const noexcept
-
720 {
-
721 return find_n(sub, 0, count);
-
722 }
-
723
-
724
-
725 //--- format() ----------------------------------------
-
727 template<typename T, class... ArgsT>
-
728 inline CppStringT& format(
-
729 const std::basic_format_string<T, std::type_identity_t<ArgsT>...> frmt,
-
730 ArgsT&&... args
-
731 )
-
732 {
-
733 return *this;
-
734 }
-
735
-
736 template<class... ArgsT>
-
737 inline CppStringT& format(
-
738 const std::basic_format_string<char , std::type_identity_t<ArgsT>... > frmt,
-
739 ArgsT&&... args
-
740 )
-
741 {
-
742 return *this = std::vformat(frmt.get(), std::make_format_args(args...));
-
743 }
-
744
-
745 template<class... ArgsT>
-
746 inline CppStringT& format(
-
747 const std::basic_format_string<wchar_t, std::type_identity_t<ArgsT>... > frmt,
-
748 ArgsT&&... args
-
749 )
-
750 {
-
751 return *this = std::vformat(frmt.get(), std::make_wformat_args(args...));
-
752 }
-
753
-
754
-
755 //--- index() -----------------------------------------
-
761 [[nodiscard]]
-
762 inline constexpr size_type index(const CppStringT& sub, const size_type start = 0, const size_type end = -1) const
-
763 {
-
764 const size_type ret_value = find(sub, start, end);
-
765 if (ret_value == CppStringT::npos)
-
766 throw NotFoundException("substring not found in string.");
-
767 else
-
768 return ret_value;
-
769 }
-
770
-
771
-
772 //--- index_n() ---------------------------------------
-
778 [[nodiscard]]
-
779 inline constexpr size_type index_n(const CppStringT& sub, const size_type start, const size_type count) const
-
780 {
-
781 return index(sub, start, start + count - 1);
-
782 }
-
783
-
789 [[nodiscard]]
-
790 inline constexpr size_type index_n(const CppStringT& sub, const size_type count) const
-
791 {
-
792 return index(sub, 0, count);
-
793 }
-
794
-
795
-
796 //--- isalnum() ---------------------------------------
-
798 [[nodiscard]]
-
799 inline const bool isalnum() const noexcept
-
800 {
-
801 if (this->empty()) [[unlikely]]
-
802 return false;
-
803 else [[likely]]
-
804 return std::all_of(
-
805 this->cbegin(),
-
806 this->cend(),
-
807 [](const value_type ch) { return pcs::is_alpha(ch) || pcs::is_decimal(ch) || pcs::is_digit(ch) || pcs::is_numeric(ch); }
-
808 );
-
809 }
-
810
-
811
-
812 //--- isalpha() --------------------------------------
-
814 [[nodiscard]]
-
815 inline const bool isalpha() const noexcept
-
816 {
-
817 return !this->empty() && std::all_of(this->cbegin(), this->cend(), pcs::is_alpha<value_type>);
-
818 }
-
819
-
820
-
821 //--- isascii() ---------------------------------------
-
823#if defined(isascii) // may be already defined in header file <ctype.h>
-
824#undef isascii
-
825#endif
-
826 [[nodiscard]]
-
827 inline const bool isascii() const noexcept
-
828 {
-
829 return this->empty() || std::all_of(this->cbegin(), this->cend(), pcs::is_ascii<value_type>);
-
830 }
-
831
-
832
-
833 //--- isdecimal() -------------------------------------
-
840 [[nodiscard]]
-
841 inline const bool isdecimal() const noexcept
-
842 {
-
843 return !this->empty() && std::all_of(this->cbegin(), this->cend(), pcs::is_decimal<value_type>);
-
844 }
-
845
-
846
-
847 //--- isdigit() ---------------------------------------
-
861 [[nodiscard]]
-
862 inline const bool isdigit() const noexcept
-
863 {
-
864 return isdecimal();
-
865 }
-
866
-
867
-
868 //--- isidentifier() ----------------------------------
-
888 [[nodiscard]]
-
889 inline const bool isidentifier() const noexcept
-
890 {
-
891 return !this->empty() && pcs::is_id_start((*this)[0]) && (this->size() == 1 || std::all_of(this->cbegin() + 1, this->cend(), pcs::is_id_continue<value_type>));
-
892 }
-
893
-
894
-
895 //--- islower() ---------------------------------------
-
897 [[nodiscard]]
-
898 inline const bool islower() const noexcept
-
899 {
-
900 return !this->empty() && std::all_of(this->cbegin(), this->cend(), pcs::is_lower<value_type>);
-
901 }
-
902
-
903
-
904 //--- isnumeric() -------------------------------------
-
914 [[nodiscard]]
-
915 inline const bool isnumeric() const noexcept
-
916 {
-
917 return isdecimal();
-
918 }
-
919
-
920
-
921 //--- isprintable() -----------------------------------
-
928 [[nodiscard]]
-
929 inline const bool isprintable() const noexcept
-
930 {
-
931 return this->empty() || std::all_of(this->cbegin(), this->cend(), pcs::is_printable<value_type>);
-
932 }
-
933
-
934
-
935 //--- ispunctuation() ---------------------------------
-
937 [[nodiscard]]
-
938 inline const bool ispunctuation() const noexcept
-
939 {
-
940 return this->size() == 1 && pcs::is_punctuation((*this)[0]);
-
941 }
-
942
-
943
-
944 //--- isspace() ---------------------------------------
-
946 [[nodiscard]]
-
947 inline const bool isspace() const noexcept
-
948 {
-
949 return !this->empty() && std::all_of(this->cbegin(), this->cend(), pcs::is_space<value_type>);
-
950 }
-
951
-
952
-
953 //--- istitle() ---------------------------------------
-
963 [[nodiscard]]
-
964 inline const bool istitle() const noexcept
-
965 {
-
966 return !this->empty() && this->title() == *this;
-
967 }
-
968
-
969
-
970 //--- isupper() ---------------------------------------
-
972 [[nodiscard]]
-
973 inline const bool isupper() const noexcept
-
974 {
-
975 return !this->empty() && std::all_of(this->cbegin(), this->cend(), pcs::is_upper<value_type>);
-
976 }
-
977
-
978
-
979 //--- is_words_sep() ----------------------------------
-
981 [[nodiscard]]
-
982 inline const bool is_words_sep() const noexcept
-
983 {
-
984 return !this->empty() &&
-
985 std::all_of(
-
986 this->cbegin(),
-
987 this->cend(),
-
988 [](const value_type ch) { return pcs::is_space(ch) || pcs::is_punctuation(ch); }
-
989 );
-
990 }
-
991
-
992
-
993 //--- join() ------------------------------------------
-
998 template<const std::size_t N>
-
999 [[nodiscard]]
-
1000 CppStringT join(const std::array<CppStringT, N>& strs) const noexcept
-
1001 {
-
1002 if (strs.empty()) [[unlikely]]
-
1003 return CppStringT();
-
1004
-
1005 auto str_it = strs.cbegin();
-
1006 CppStringT res{ *str_it++ };
-
1007 while (str_it != strs.cend()) [[likely]]
-
1008 res += *this + *str_it++;
-
1009 return res;
-
1010 }
-
1011
-
1016 [[nodiscard]]
-
1017 CppStringT join(const std::vector<CppStringT>& strs) const noexcept
-
1018 {
-
1019 if (strs.empty()) [[unlikely]]
-
1020 return CppStringT();
-
1021
-
1022 auto str_it = strs.cbegin();
-
1023 CppStringT res{ *str_it++ };
-
1024 while (str_it != strs.cend()) [[likely]]
-
1025 res += *this + *str_it++;
-
1026 return res;
-
1027 }
-
1028
-
1033 template<class... NextCppStringsT>
-
1034 [[nodiscard]]
-
1035 inline CppStringT join(const CppStringT& first, const NextCppStringsT&... others) const noexcept
-
1036 requires (sizeof...(others) > 0)
-
1037 {
-
1038 return first + *this + this->join(others...);
-
1039 }
-
1040
-
1042 [[nodiscard]]
-
1043 inline CppStringT join(const CppStringT& s) const noexcept
-
1044 {
-
1045 return s;
-
1046 }
-
1047
-
1049 [[nodiscard]]
-
1050 inline const CppStringT join() const noexcept
-
1051 {
-
1052 return *this;
-
1053 }
-
1054
-
1055
-
1056 //--- ljust() -----------------------------------------
-
1062 [[nodiscard]]
-
1063 inline CppStringT ljust(const size_type width, const value_type fillch = value_type(' ')) const noexcept
-
1064 {
-
1065 if (this->size() >= width) [[unlikely]]
-
1066 return *this;
-
1067 else [[likely]]
-
1068 return CppStringT(width - this->size(), fillch) + *this;
-
1069 }
-
1070
-
1071
-
1072 //--- lower () -----------------------------------------
-
1078 inline CppStringT& lower() noexcept
-
1079 {
-
1080 std::transform(
-
1081 this->begin(),
-
1082 this->end(),
-
1083 this->begin(),
-
1084 [&](value_type ch) { return this->lower(ch); }
-
1085 );
-
1086 return *this;
-
1087 }
-
1088
-
1094 [[nodiscard]]
-
1095 static inline const value_type lower(const value_type ch) noexcept
-
1096 {
-
1097 return value_type(std::tolower(ch));
-
1098 }
-
1099
-
1100
-
1101 //--- lstrip() ----------------------------------------
-
1109 [[nodiscard]]
-
1110 inline CppStringT lstrip(const CppStringT& removedchars) const noexcept
-
1111 {
-
1112 for (auto it = this->cbegin(); it != this->cend(); ++it) [[likely]]
-
1113 if (std::none_of(removedchars.cbegin(), removedchars.cend(), [it](const value_type ch) { return *it == ch; })) [[likely]]
-
1114 return CppStringT(it, this->cend());
-
1115 return CppStringT();
-
1116 }
-
1117
-
1119 [[nodiscard]]
-
1120 inline CppStringT lstrip() const noexcept
-
1121 {
-
1122 for (auto it = this->cbegin(); it != this->cend(); ++it) [[likely]]
-
1123 if (*it != value_type(' ')) [[unlikely]]
-
1124 return CppStringT(it, this->cend());
-
1125 return CppStringT();
-
1126 }
-
1127
-
1128
-
1129 //--- operator () -------------------------------------
-
1141 template<typename IntT>
-
1142 requires std::is_signed_v<IntT>
-
1143 [[nodiscard]]
-
1144 CppStringT operator() (Slice<IntT> slice) const noexcept
-
1145 {
-
1146 // optimization on 1 by 1 step
-
1147 if (slice.step() == 1) [[likely]] {
-
1148 slice.begin(*this);
-
1149 if (slice.start() < slice.stop()) [[likely]]
-
1150 return this->substr(size_type(slice.start()), size_type(slice.stop() - slice.start() + 1));
-
1151 else [[unlikely]]
-
1152 return CppStringT();
-
1153 }
-
1154
-
1155 CppStringT res{};
-
1156
-
1157 // optimization on reversed 1 by 1 step
-
1158 if (slice.step() == -1) {
-
1159 slice.begin(*this);
-
1160 if (slice.stop() < slice.start()) [[likely]] {
-
1161 res = this->substr(size_type(slice.stop()), size_type(slice.start() - slice.stop() + 1));
-
1162 std::ranges::reverse(res); // notice: may use vectorization if available
-
1163 }
-
1164 return res;
-
1165 }
-
1166
-
1167 // finally, no trivial optimization -- and naive implementation...
-
1168 for (slice.begin(*this); !slice.end(); ++slice)
-
1169 res += (*this)[size_type(*slice)];
-
1170
-
1171 return res;
-
1172 }
-
1173
-
1175 [[nodiscard]]
-
1176 inline CppStringT operator() (const long long start, const long long stop, const long long step = 1) const noexcept
-
1177 {
-
1178 Slice<long long> slice(start, stop, step);
-
1179 return (*this)(slice);
-
1180 }
-
1181
-
1182
-
1183 //--- operator * --------------------------------------
-
1185 [[nodiscard]]
-
1186 CppStringT operator* (std::int64_t count) const noexcept
-
1187 {
-
1188 if (count <= 0) [[unlikely]]
-
1189 return CppStringT();
-
1190
-
1191 CppStringT res(*this);
-
1192 while (--count) [[likely]]
-
1193 res += *this;
-
1194 return res;
-
1195 }
-
1196
-
1197
-
1198 //--- partition() -------------------------------------
-
1204 [[nodiscard]]
-
1205 std::vector<CppStringT> partition(const CppStringT& sep) const noexcept
-
1206 {
-
1207 const size_type sep_index = find(sep);
-
1208 if (sep_index == CppStringT::npos) {
-
1209 const CppStringT empty{};
-
1210 return std::vector<CppStringT>({ *this, empty, empty });
-
1211 }
-
1212 else {
-
1213 const size_type third_index = sep_index + sep.size();
-
1214 const size_type third_size = this->size() - third_index + 1;
-
1215 return std::vector<CppStringT>({ this->substr(0, sep_index), sep, this->substr(third_index, third_size) });
-
1216 }
-
1217 }
-
1218
-
1219
-
1220 //--- removeprefix() ----------------------------------
-
1222 [[nodiscard]]
-
1223 inline CppStringT removeprefix(const CppStringT& prefix) const noexcept
-
1224 {
-
1225 if (this->startswith(prefix)) {
-
1226 const size_type prefix_length = prefix.size();
-
1227 return this->substr(prefix_length, this->size() - prefix_length + 1);
-
1228 }
-
1229 else
-
1230 return *this;
-
1231 }
-
1232
-
1233
-
1234 //--- removesuffix() ----------------------------------
-
1236 [[nodiscard]]
-
1237 inline CppStringT removesuffix(const CppStringT& suffix) const noexcept
-
1238 {
-
1239 if (this->endswith(suffix)) {
-
1240 const size_type suffix_length = suffix.size();
-
1241 return this->substr(0, this->size() - suffix_length);
-
1242 }
-
1243 else
-
1244 return *this;
-
1245 }
-
1246
-
1247
-
1248 //--- replace() ---------------------------------------
-
1250 [[nodiscard]]
-
1251 CppStringT replace(const CppStringT& old, const CppStringT& new_, size_type count = -1) const noexcept
-
1252 {
-
1253 if (old == new_ || old.empty()) [[unlikely]]
-
1254 return *this;
-
1255
-
1256 CppStringT res{};
-
1257 size_type prev_index = 0;
-
1258 size_type current_index = 0;
-
1259 while (count > 0 && (current_index = this->find(old, prev_index)) != CppStringT::npos) {
-
1260 res += this->substr(prev_index, current_index - prev_index) + new_;
-
1261 prev_index = current_index + 1;
-
1262 --count;
-
1263 }
-
1264
-
1265 if (prev_index < this->size()) [[likely]]
-
1266 res += this->substr(prev_index, this->size() - prev_index);
-
1267
-
1268 return res;
-
1269 }
-
1270
-
1271
-
1272 //--- rfind() -----------------------------------------
-
1287 [[nodiscard]]
-
1288 inline constexpr size_type rfind(const CppStringT& sub, const size_type start, const size_type end) const noexcept
-
1289 {
-
1290 if (start > end) [[unlikely]]
-
1291 return CppStringT::npos;
-
1292 else if (sub.empty()) [[unlikely]]
-
1293 return 0;
-
1294 else [[likely]] {
-
1295 const size_type found_pos{ this->substr(start, end - start + 1).rfind(sub) };
-
1296 return (found_pos == CppStringT::npos) ? CppStringT::npos : found_pos + start;
-
1297 }
-
1298 }
-
1299
-
1300
-
1315 [[nodiscard]]
-
1316 inline constexpr size_type rfind(const CppStringT& sub, const size_type start) const noexcept
-
1317 {
-
1318 return rfind(sub, start, this->size() - 1);
-
1319 }
-
1320
-
1321
-
1336 [[nodiscard]]
-
1337 inline constexpr size_type rfind(const CppStringT& sub) const noexcept
-
1338 {
-
1339 return MyBaseClass::rfind(sub);
-
1340 }
-
1341
-
1342
-
1343 //--- rfind_n() ---------------------------------------
-
1352 [[nodiscard]]
-
1353 inline constexpr size_type rfind_n(const CppStringT& sub, const size_type start, const size_type count) const noexcept
-
1354 {
-
1355 return rfind(sub, start, start + count - 1);
-
1356 }
-
1357
-
1366 [[nodiscard]]
-
1367 inline constexpr size_type rfind_n(const CppStringT& sub, const size_type count) const noexcept
-
1368 {
-
1369 if (count == 0) [[unlikely]]
-
1370 return CppStringT::npos;
-
1371 else [[likely]]
-
1372 return rfind(sub, 0, count - 1);
-
1373 }
-
1374
-
1375
-
1376 //--- rindex() ----------------------------------------
-
1382 [[nodiscard]]
-
1383 inline constexpr size_type rindex(const CppStringT& sub, const size_type start, const size_type end) const
-
1384 {
-
1385 const size_type ret_value = rfind(sub, start, end);
-
1386 if (ret_value == CppStringT::npos)
-
1387 throw NotFoundException("substring not found in string");
-
1388 else
-
1389 return ret_value;
-
1390 }
-
1391
-
1397 [[nodiscard]]
-
1398 inline constexpr size_type rindex(const CppStringT& sub, const size_type start) const
-
1399 {
-
1400 return rindex(sub, start, this->size() - 1);
-
1401 }
-
1402
-
1408 [[nodiscard]]
-
1409 inline constexpr size_type rindex(const CppStringT& sub) const
-
1410 {
-
1411 return rindex(sub, 0, this->size() - 1);
-
1412 }
-
1413
-
1414
-
1415 //--- rindex_n() --------------------------------------
-
1421 [[nodiscard]]
-
1422 inline constexpr size_type rindex_n(const CppStringT& sub, const size_type start, const size_type count) const
-
1423 {
-
1424 return rindex(sub, start, start + count - 1);
-
1425 }
-
1426
-
1432 [[nodiscard]]
-
1433 inline constexpr size_type rindex_n(const CppStringT& sub, const size_type count) const
-
1434 {
-
1435 return rindex(sub, 0, count);
-
1436 }
-
1437
-
1438
-
1439 //--- rjust() -----------------------------------------
-
1445 [[nodiscard]]
-
1446 inline CppStringT rjust(const size_type width, const value_type fillch = value_type(' ')) const noexcept
-
1447 {
-
1448 if (this->size() >= width) [[unlikely]]
-
1449 return *this;
-
1450 else [[likely]]
-
1451 return *this + CppStringT(width - this->size(), fillch);
-
1452 }
-
1453
-
1454
-
1455 //--- rpartition() -------------------------------------
-
1461 [[nodiscard]]
-
1462 std::vector<CppStringT> rpartition(const CppStringT& sep) const noexcept
-
1463 {
-
1464 const size_type sep_index = rfind(sep);
-
1465 if (sep_index == CppStringT::npos) {
-
1466 const CppStringT empty{};
-
1467 return std::vector<CppStringT>({ *this, empty, empty });
-
1468 }
-
1469 else {
-
1470 const size_type third_index = sep_index + sep.size();
-
1471 const size_type third_size = this->size() - third_index + 1;
-
1472 return std::vector<CppStringT>({ this->substr(0, sep_index), sep, this->substr(third_index, third_size) });
-
1473 }
-
1474 }
-
1475
-
1476
-
1477 //--- rsplit() ----------------------------------------
-
1483 [[nodiscard]]
-
1484 inline std::vector<CppStringT> rsplit() noexcept
-
1485 {
-
1486 return split();
-
1487 }
-
1488
-
1490 [[nodiscard]]
-
1491 inline std::vector<CppStringT> rsplit(const CppStringT& sep) noexcept
-
1492 {
-
1493 return split(sep);
-
1494 }
-
1495
-
1497 [[nodiscard]]
-
1498 inline std::vector<CppStringT> rsplit(const size_type maxsplit) noexcept
-
1499 {
-
1500 return rsplit(CppStringT(value_type(' ')), maxsplit);
-
1501 }
-
1502
-
1504 [[nodiscard]]
-
1505 std::vector<CppStringT> rsplit(const CppStringT& sep, const size_type maxsplit) noexcept
-
1506 {
-
1507 std::vector<CppStringT> res{};
-
1508
-
1509 if (maxsplit == 0) [[unlikely]] {
-
1510 res.push_back({ *this });
-
1511 }
-
1512 else [[likely]] {
-
1513 const size_type sep_size{ sep.size() };
-
1514 std::vector<size_type> indexes{};
-
1515 CppStringT tmp{ *this };
-
1516 size_type count{ maxsplit };
-
1517 size_type index{ 0 };
-
1518
-
1519 while ((index = tmp.rfind(sep)) != CppStringT::npos && count > 0) {
-
1520 indexes.insert(indexes.begin(), index);
-
1521 if (index == 0)
-
1522 break;
-
1523 tmp = tmp.substr(0, index);
-
1524 count--;
-
1525 }
-
1526
-
1527 if (indexes.size() == 0)
-
1528 res.push_back(*this);
-
1529 else {
-
1530 index = 0;
-
1531 for (const size_type ndx : indexes) {
-
1532 res.push_back(this->substr(index, ndx - index));
-
1533 index = ndx + sep_size;
-
1534 }
-
1535 }
-
1536 res.push_back(this->substr(index, this->size() - index));
-
1537 }
-
1538
-
1539 return res;
-
1540 }
-
1541
-
1542
-
1543 //--- rstrip() ----------------------------------------
-
1551 [[nodiscard]]
-
1552 inline CppStringT rstrip(const CppStringT& removedchars) const noexcept
-
1553 {
-
1554 for (auto it = this->crbegin(); it != this->crend(); ++it)
-
1555 if (std::none_of(removedchars.cbegin(), removedchars.cend(), [it](const value_type ch) { return *it == ch; }))
-
1556 return CppStringT(this->cbegin(), this->cbegin() + this->size() - (it - this->crbegin()));
-
1557 return CppStringT();
-
1558 }
-
1559
-
1561 [[nodiscard]]
-
1562 inline CppStringT rstrip() const noexcept
-
1563 {
-
1564 for (auto it = this->crbegin(); it != this->crend(); ++it)
-
1565 if (*it != value_type(' '))
-
1566 return CppStringT(this->cbegin(), this->cbegin() + this->size() - (it - this->crbegin()));
-
1567 return CppStringT();
-
1568 }
-
1569
-
1570
-
1571 //--- split() -----------------------------------------
-
1577 [[nodiscard]]
-
1578 inline std::vector<CppStringT> split() noexcept
-
1579 {
-
1580 std::vector<CppStringT> res;
-
1581 const CppStringT whitespace(value_type(' '));
-
1582 for (const auto& word : *this | std::views::split(whitespace))
-
1583 res.push_back(CppStringT(word.begin(), word.end()));
-
1584 return res;
-
1585 }
-
1586
-
1596 [[nodiscard]]
-
1597 inline std::vector<CppStringT> split(const CppStringT& sep) noexcept
-
1598 {
-
1599 std::vector<CppStringT> res;
-
1600 for (const auto& word : *this | std::views::split(sep))
-
1601 res.push_back(CppStringT(word.begin(), word.end()));
-
1602 return res;
-
1603 }
-
1604
-
1606 [[nodiscard]]
-
1607 inline std::vector<CppStringT> split(const size_type maxsplit) noexcept
-
1608 {
-
1609 return split(CppStringT(value_type(' ')), maxsplit);
-
1610 }
-
1611
-
1613 [[nodiscard]]
-
1614 std::vector<CppStringT> split(const CppStringT& sep, const size_type maxsplit) noexcept
-
1615 {
-
1616 std::vector<CppStringT> res{};
-
1617
-
1618 if (maxsplit == 0) [[unlikely]] {
-
1619 res.push_back(*this);
-
1620 }
-
1621 else [[likely]] {
-
1622 const size_type sep_size{ sep.size() };
-
1623 std::vector<size_type> indexes{};
-
1624 size_type count{ maxsplit };
-
1625 size_type index{ 0 };
-
1626
-
1627 while ((index = this->find(sep, index)) != CppStringT::npos && count > 0) {
-
1628 indexes.push_back(index);
-
1629 if (index == this->size())
-
1630 break;
-
1631 index += sep_size;
-
1632 count--;
-
1633 }
-
1634
-
1635 if (indexes.size() == 0)
-
1636 res.push_back(*this);
-
1637 else {
-
1638 index = 0;
-
1639 for (const size_type ndx : indexes) {
-
1640 res.push_back(this->substr(index, ndx - index));
-
1641 index = ndx + sep_size;
-
1642 }
-
1643 }
-
1644 res.push_back(this->substr(index, this->size() - index));
-
1645 }
-
1646
-
1647 return res;
-
1648 }
-
1649
-
1650
-
1651 //--- splitlines() ------------------------------------
-
1670 [[nodiscard]]
-
1671 std::vector<CppStringT> splitlines(const bool keep_end = false) const noexcept
-
1672 {
-
1673 std::vector<CppStringT> res{};
-
1674 CppStringT current{};
-
1675 bool prev_cr = false;
-
1676
-
1677 for (const value_type ch : *this) {
-
1678 switch (ch) {
-
1679 case 0x0b: [[unlikely]] // Line Tabulation, \v as well as \x0b and \013
-
1680 case 0x0c: [[unlikely]] // Form Feed, \f as well as \x0c and \014
-
1681 case 0x1c: [[unlikely]] // File Separator, or \034
-
1682 case 0x1d: [[unlikely]] // Group Separator, or \035
-
1683 case 0x1e: [[unlikely]] // Record Separator, or \036
-
1684 //case L'\u0085': [[unlikely]] // Next Line (C1 Control Code), or \0205
-
1685 //case L'\u2028': [[unlikely]] // Line Separator
-
1686 //case L'\u2029': [[unlikely]] // Paragraph Separator
-
1687 if (prev_cr) [[unlikely]] {
-
1688 res.push_back(current);
-
1689 current.clear();
-
1690 }
-
1691 if (keep_end) [[unlikely]]
-
1692 current += ch;
-
1693 res.push_back(current);
-
1694 current.clear();
-
1695 prev_cr = false;
-
1696 break;
-
1697
-
1698 case value_type('\r'): [[unlikely]] // Line Feed
-
1699 if (prev_cr) [[unlikely]] {
-
1700 res.push_back(current);
-
1701 current.clear();
-
1702 }
-
1703 if (keep_end) [[unlikely]]
-
1704 current += ch;
-
1705 prev_cr = true;
-
1706 break;
-
1707
-
1708 case value_type('\n'): [[unlikely]] // Carriage return
-
1709 if (keep_end) [[unlikely]]
-
1710 current += ch;
-
1711 res.push_back(current);
-
1712 current.clear();
-
1713 prev_cr = false;
-
1714 break;
-
1715
-
1716
-
1717 default: [[likely]]
-
1718 if (prev_cr) [[unlikely]] {
-
1719 res.push_back(current);
-
1720 current.clear();
-
1721 prev_cr = false;
-
1722 }
-
1723 current += ch;
-
1724 break;
-
1725 }
-
1726 }
-
1727
-
1728 if (prev_cr) [[unlikely]] {
-
1729 res.push_back(current);
-
1730 }
-
1731
-
1732 return res;
-
1733 }
-
1734
-
1735
-
1736 //--- startswith() ------------------------------------
-
1738 [[nodiscard]]
-
1739 inline const bool startswith(const CppStringT& prefix, const size_type start, const size_type end) const noexcept
-
1740 {
-
1741 return this->substr(start, end - start + 1).MyBaseClass::starts_with(prefix);
-
1742 }
-
1743
-
1745 [[nodiscard]]
-
1746 inline const bool startswith(const CppStringT& prefix, const size_type start) const noexcept
-
1747 {
-
1748 return startswith(prefix, start, this->size() - 1);
-
1749 }
-
1750
-
1752 [[nodiscard]]
-
1753 inline const bool startswith(const CppStringT& prefix) const noexcept
-
1754 {
-
1755 return this->starts_with(prefix);
-
1756 }
-
1757
-
1759 [[nodiscard]]
-
1760 inline const bool startswith(const std::initializer_list<CppStringT>& prefixes, const size_type start, const size_type end) const noexcept
-
1761 {
-
1762 if (start > end)
-
1763 return false;
-
1764
-
1765 CppStringT tmp(this->substr(start, end));
-
1766 for (auto& prefix : prefixes) {
-
1767 if (tmp.starts_with(prefix))
-
1768 return true;
-
1769 }
-
1770 return false;
-
1771 }
-
1772
-
1773
-
1774 //--- startswith_n() ----------------------------------
-
1776 [[nodiscard]]
-
1777 inline const bool startswith_n(const CppStringT& prefix, const size_type start, const size_type count) const noexcept
-
1778 {
-
1779 return this->substr(start, count).MyBaseClass::starts_with(prefix);
-
1780 }
-
1781
-
1783 [[nodiscard]]
-
1784 inline const bool startswith_n(const CppStringT& prefix, const size_type count) const noexcept
-
1785 {
-
1786 return this->substr(0, count).MyBaseClass::starts_with(prefix);
-
1787 }
-
1788
-
1790 [[nodiscard]]
-
1791 inline const bool startswith_n(const std::initializer_list<CppStringT>& prefix, const size_type start, const size_type count) const noexcept
-
1792 {
-
1793 return startswith(prefix, start, count);
-
1794 }
-
1795
-
1796
-
1797 //--- strip() -----------------------------------------
-
1804 [[nodiscard]]
-
1805 inline CppStringT strip(const CppStringT& removedchars) const noexcept
-
1806 {
-
1807 return this->rstrip(removedchars).lstrip(removedchars);
-
1808 }
-
1809
-
1811 [[nodiscard]]
-
1812 inline CppStringT strip() const noexcept
-
1813 {
-
1814 return this->rstrip().lstrip();
-
1815 }
-
1816
-
1817
-
1818 //--- substr() ----------------------------------------
-
1820 [[nodiscard]]
-
1821 inline CppStringT substr(const size_type start, const size_type count = -1) const noexcept
-
1822 {
-
1823 if (start > this->size()) [[unlikely]]
-
1824 return CppStringT();
-
1825
-
1826 const size_type width{ std::min(count, this->size() - start + 1) };
-
1827 return CppStringT(MyBaseClass::substr(start, width));
-
1828 }
-
1829
-
1830
-
1831 //--- swapcase() --------------------------------------
-
1836 [[nodiscard]]
-
1837 inline CppStringT swapcase() const noexcept
-
1838 {
-
1839 CppStringT res;
-
1840 std::ranges::transform(*this, std::back_inserter(res), [](const value_type c) -> value_type { return pcs::swap_case(c); });
-
1841 return res;
-
1842 }
-
1843
-
1844
-
1845 //--- title() -----------------------------------------
-
1847 [[nodiscard]]
-
1848 CppStringT title() const noexcept
-
1849 {
-
1850 const CppStringT whitespace(value_type(' '));
-
1851
-
1852 CppStringT res(*this);
-
1853 std::vector<CppStringT> words = res.split(whitespace);
-
1854
-
1855 for (CppStringT& word : words)
-
1856 word = word.capitalize();
-
1857
-
1858 return whitespace.join(words);
-
1859 }
-
1860
-
1861
-
1862 //--- translate() -------------------------------------
-
1869 [[nodiscard]]
-
1870 CppStringT translate(TransTable& table) noexcept
-
1871 {
-
1872 CppStringT res{};
-
1873 for (auto ch : *this) {
-
1874 try { res += table[ch]; }
-
1875 catch (...) { res += ch; }
-
1876 }
-
1877 return res;
-
1878 }
-
1879
-
1880
-
1881 //--- upper () -----------------------------------------
-
1887 inline CppStringT& upper() noexcept
-
1888 {
-
1889 CppStringT res{};
-
1890 std::ranges::transform(*this, std::back_inserter(res), [&](const value_type ch) -> value_type { return this->upper(ch); });
-
1891 return *this = res;
-
1892 }
-
1893
-
1899 [[nodiscard]]
-
1900 static inline const value_type upper(const value_type ch) noexcept
-
1901 {
-
1902 return value_type(std::toupper(ch));
-
1903 }
-
1904
-
1905
-
1906 //--- zfill() -----------------------------------------
-
1913 [[nodiscard]]
-
1914 inline CppStringT zfill(const size_type width) const noexcept
-
1915 {
-
1916 if (this->size() >= width) [[unlikely]]
-
1917 return *this;
-
1918
-
1919 const size_type padding_width = width - this->size();
-
1920 if ((*this)[0] == '-' || (*this)[0] == '+') [[unlikely]]
-
1921 return (*this)[0] + this->substr(1, this->size() - 1).ljust(width - 1, value_type('0'));
-
1922 else [[likely]]
-
1923 return this->ljust(width, value_type('0'));
-
1924 }
-
1925
-
1926 };
-
1927
-
1928
-
1929 //===== litteral operators ============================
-
1931 inline CppString operator""_cs(const char* str, std::size_t len)
-
1932 {
-
1933 return CppString(CppString::MyBaseClass(str, len));
-
1934 }
-
1935
-
1937 inline CppWString operator""_cs(const wchar_t* str, std::size_t len)
-
1938 {
-
1939 return CppWString(CppWString::MyBaseClass(str, len));
-
1940 }
-
1941
-
1942
-
1943 //===== Slices ========================================
-
1944 //--- slices base -------------------------------------
-
1946 template<typename IntT>
-
1947 requires std::is_signed_v<IntT>
-
1948 class Slice
-
1949 {
-
1950 public:
-
1951 static constexpr IntT DEFAULT{ std::numeric_limits<IntT>::min() };
-
1952
-
1953 //--- Constructors / Destructor -------------------
-
1954 Slice(const IntT start = DEFAULT, const IntT stop = DEFAULT, const IntT step = DEFAULT) noexcept
-
1955 : _start(start)
-
1956 , _stop(stop)
-
1957 , _step(step)
-
1958 {}
-
1959
-
1960 virtual ~Slice() noexcept = default;
-
1961
-
1962
-
1963 //--- iterating -----------------------------------
-
1964 template<typename CharT = char>
-
1965#if (defined(_HAS_CXX20) && _HAS_CXX20)
-
1966 requires std::is_same_v<CharT, char> || std::is_same_v<CharT, char8_t> || std::is_same_v<CharT, char16_t> || std::is_same_v<CharT, char32_t> || std::is_same_v<CharT, wchar_t>
-
1967#else
-
1968 requires std::is_same_v<CharT, char> || std::is_same_v<CharT, char16_t> || std::is_same_v<CharT, char32_t> || std::is_same_v<CharT, wchar_t>
-
1969#endif
-
1970 inline const IntT begin(const CppStringT<CharT>& str) noexcept
-
1971 {
-
1972 return _prepare_iterating(IntT(str.size()));
-
1973 }
-
1974
-
1975 [[nodiscard]]
-
1976 inline const bool end() const noexcept
-
1977 {
-
1978 return _step == 0 ? true : _step > 0 ? _index >= _stop : _index <= _stop;
-
1979 }
-
1980
-
1981 inline Slice operator++() noexcept
-
1982 {
-
1983 _index += _step;
-
1984 return *this;
-
1985 }
-
1986
-
1987 inline Slice operator++(int) noexcept
-
1988 {
-
1989 _index += _step;
-
1990 return *this;
-
1991 }
-
1992
-
1993 [[nodiscard]]
-
1994 inline const IntT operator*() noexcept
-
1995 {
-
1996 return _index;
-
1997 }
-
1998
-
1999 //--- properties ----------------------------------
-
2000 inline IntT start() { return _start; }
-
2001 inline IntT stop() { return _stop; }
-
2002 inline IntT step() { return _step; }
-
2003
-
2004
-
2005 private:
-
2006 IntT _start{ 0 };
-
2007 IntT _stop{ DEFAULT };
-
2008 IntT _step{ 1 };
-
2009
-
2010 IntT _index{ 0 };
-
2011
-
2012 [[nodiscard]]
-
2013 const IntT _prepare_iterating(const IntT str_size) noexcept
-
2014 {
-
2015 if (_start == DEFAULT) {
-
2016 if (_step < 0 && _step != DEFAULT) [[unlikely]]
-
2017 _start = str_size - 1;
-
2018 else [[likely]]
-
2019 _start = 0;
-
2020 }
-
2021 else if (_start < 0) {
-
2022 _start += str_size;
-
2023 if (_start < 0) [[unlikely]]
-
2024 _start = 0;
-
2025 }
-
2026 else if (_start >= str_size) {
-
2027 if (_step < 0 && _step != DEFAULT)
-
2028 _start = str_size - 1;
-
2029 }
-
2030
-
2031 if (_stop == DEFAULT) {
-
2032 if (_step < 0 && _step != DEFAULT) [[unlikely]]
-
2033 _stop = 0;
-
2034 else
-
2035 _stop = str_size;
-
2036 }
-
2037 else if (_stop < 0) {
-
2038 _stop += str_size;
-
2039 if (_stop < 0)
-
2040 _stop = 0;
-
2041 }
-
2042 else if (_stop > str_size)
-
2043 _stop = str_size;
-
2044
-
2045 if (_step == DEFAULT) [[likely]]
-
2046 _step = 1;
-
2047 if (_step < 0) [[unlikely]] {
-
2048 if (_start <= _stop)
-
2049 _step = 0; // will force end() to true
-
2050 }
-
2051 else [[unlikely]] {
-
2052 if (_start >= _stop)
-
2053 _step = 0; // will force end() to true
-
2054 }
-
2055
-
2056 return _index = _start;
-
2057 }
-
2058 };
-
2059
-
2060
-
2062 template<typename IntT>
-
2063 requires std::is_signed_v<IntT>
-
2064 struct StartSlice : public Slice<IntT>
-
2065 {
-
2066 using MyBaseClass = Slice<IntT>;
-
2067
-
2068 //--- Constructors / Destructor -------------------
-
2069 inline StartSlice(const IntT start = MyBaseClass::DEFAULT) noexcept
-
2070 : MyBaseClass(start, MyBaseClass::DEFAULT, 1)
-
2071 {}
-
2072
-
2073 virtual ~StartSlice() noexcept = default;
-
2074 };
-
2075
-
2076
-
2078 template<typename IntT>
-
2079 requires std::is_signed_v<IntT>
-
2080 struct StopSlice : public Slice<IntT>
-
2081 {
-
2082 using MyBaseClass = Slice<IntT>;
-
2083
-
2084 //--- Constructors / Destructor -------------------
-
2085 inline StopSlice(const IntT stop = MyBaseClass::DEFAULT) noexcept
-
2086 : MyBaseClass(MyBaseClass::DEFAULT, stop, 1)
-
2087 {}
-
2088
-
2089 virtual ~StopSlice() noexcept = default;
-
2090 };
-
2091
-
2092
-
2094 template<typename IntT>
-
2095 requires std::is_signed_v<IntT>
-
2096 struct StepSlice : public Slice<IntT>
-
2097 {
-
2098 using MyBaseClass = Slice<IntT>;
-
2099
-
2100 //--- Constructors / Destructor -------------------
-
2101 inline StepSlice(const IntT step = MyBaseClass::DEFAULT) noexcept
-
2102 : MyBaseClass(MyBaseClass::DEFAULT, MyBaseClass::DEFAULT, step)
-
2103 {}
-
2104
-
2105 virtual ~StepSlice() noexcept = default;
-
2106 };
-
2107
-
2108
-
2110 template<typename IntT>
-
2111 requires std::is_signed_v<IntT>
-
2112 struct StartStopSlice : public Slice<IntT>
-
2113 {
-
2114 using MyBaseClass = Slice<IntT>;
-
2115
-
2116 //--- Constructors / Destructor -------------------
-
2117 inline StartStopSlice(const IntT start = MyBaseClass::DEFAULT, const IntT stop = MyBaseClass::DEFAULT) noexcept
-
2118 : MyBaseClass(start, stop, 1)
-
2119 {}
-
2120
-
2121 virtual ~StartStopSlice() noexcept = default;
-
2122 };
-
2123
-
2124
-
2126 template<typename IntT>
-
2127 requires std::is_signed_v<IntT>
-
2128 struct StartStepSlice : public Slice<IntT>
-
2129 {
-
2130 using MyBaseClass = Slice<IntT>;
-
2131
-
2132 //--- Constructors / Destructor -------------------
-
2133 inline StartStepSlice(const IntT start = MyBaseClass::DEFAULT, const IntT step = MyBaseClass::DEFAULT) noexcept
-
2134 : MyBaseClass(start, MyBaseClass::DEFAULT, step)
-
2135 {}
-
2136
-
2137 virtual ~StartStepSlice() noexcept = default;
-
2138
-
2139 };
-
2140
-
2141
-
2143 template<typename IntT>
-
2144 requires std::is_signed_v<IntT>
-
2145 struct StopStepSlice : public Slice<IntT>
-
2146 {
-
2147 using MyBaseClass = Slice<IntT>;
-
2148
-
2149 //--- Constructors / Destructor -------------------
-
2150 inline StopStepSlice(const IntT stop = MyBaseClass::DEFAULT, const IntT step = MyBaseClass::DEFAULT) noexcept
-
2151 : MyBaseClass(MyBaseClass::DEFAULT, stop, step)
-
2152 {}
-
2153
-
2154 virtual ~StopStepSlice() noexcept = default;
-
2155 };
-
2156
-
2157
-
2158 //===== templated chars classes ===========================
-
2159 //--- is_alpha() ------------------------------------------
-
2161 template<class CharT>
-
2162 [[nodiscard]]
-
2163 inline const bool is_alpha(const CharT ch) noexcept
-
2164 {
-
2165 return false;
-
2166 }
-
2167
-
2169 template<>
-
2170 [[nodiscard]]
-
2171 inline const bool is_alpha<char>(const char ch) noexcept
-
2172 {
-
2173 return static_cast<const bool>(std::isalpha(static_cast<unsigned char>(ch)));
-
2174 }
-
2175
-
2177 template<>
-
2178 [[nodiscard]]
-
2179 inline const bool is_alpha<wchar_t>(const wchar_t ch) noexcept
-
2180 {
-
2181 return static_cast<const bool>(std::iswalpha(ch));
-
2182 }
-
2183
-
2184
-
2185 //--- is_ascii() ------------------------------------------
-
2187 template<class CharT>
-
2188 [[nodiscard]]
-
2189 inline const bool is_ascii(const CharT ch) noexcept
-
2190 {
-
2191 return CharT(0x00) <= ch && ch <= CharT(0x7f);
-
2192 }
-
2193
-
2194
-
2195 //--- is_decimal() ----------------------------------------
-
2197 template<class CharT>
-
2198 [[nodiscard]]
-
2199 inline const bool is_decimal(const CharT ch) noexcept
-
2200 {
-
2201 return false;
-
2202 }
-
2203
-
2205 template<>
-
2206 [[nodiscard]]
-
2207 inline const bool is_decimal<char>(const char ch) noexcept
-
2208 {
-
2209 return static_cast<const bool>(std::isdigit(static_cast<unsigned char>(ch)));
-
2210 }
-
2211
-
2213 template<>
-
2214 [[nodiscard]]
-
2215 inline const bool is_decimal<wchar_t>(const wchar_t ch) noexcept
-
2216 {
-
2217 return (const bool)std::iswdigit(ch);
-
2218 }
-
2219
-
2220
-
2221 //--- is_digit() ------------------------------------------
-
2223 template<class CharT>
-
2224 [[nodiscard]]
-
2225 inline const bool is_digit(const CharT ch) noexcept
-
2226 {
-
2227 return pcs::is_decimal(ch);
-
2228 }
-
2229
-
2231 template<>
-
2232 [[nodiscard]]
-
2233 inline const bool is_digit<char>(const char ch) noexcept
-
2234 {
-
2235 return pcs::is_decimal(ch);
-
2236 }
-
2237
-
2239 template<>
-
2240 [[nodiscard]]
-
2241 inline const bool is_digit<wchar_t>(const wchar_t ch) noexcept
-
2242 {
-
2243 return pcs::is_decimal(ch);
-
2244 }
-
2245
-
2246
-
2247 //--- is_id_continue() ------------------------------------
-
2249 template<class CharT>
-
2250 [[nodiscard]]
-
2251 inline const bool is_id_continue(const CharT ch) noexcept
-
2252 {
-
2253 return pcs::is_id_start(ch) || pcs::is_decimal(ch);
-
2254 }
-
2255
-
2256
-
2257 //--- is_id_start() ---------------------------------------
-
2259 template<class CharT>
-
2260 [[nodiscard]]
-
2261 inline const bool is_id_start(const CharT ch) noexcept
-
2262 {
-
2263 return pcs::is_alpha(ch) || ch == CharT('_');
-
2264 }
-
2265
-
2266
-
2267 //--- is_lower() ------------------------------------------
-
2269 template<class CharT>
-
2270 [[nodiscard]]
-
2271 inline const bool is_lower(const CharT ch) noexcept
-
2272 {
-
2273 return false;
-
2274 }
-
2275
-
2277 template<>
-
2278 [[nodiscard]]
-
2279 inline const bool is_lower<char>(const char ch) noexcept
-
2280 {
-
2281 return std::islower(static_cast<unsigned char>(ch));
-
2282 }
-
2283
-
2285 template<>
-
2286 [[nodiscard]]
-
2287 inline const bool is_lower<wchar_t>(const wchar_t ch) noexcept
-
2288 {
-
2289 return std::iswlower(ch);
-
2290 }
-
2291
-
2292
-
2293 //--- is_numeric() ----------------------------------------
-
2295 template<class CharT>
-
2296 [[nodiscard]]
-
2297 inline const bool is_numeric(const CharT ch) noexcept
-
2298 {
-
2299 return pcs::is_decimal(ch);
-
2300 }
-
2301
-
2303 template<>
-
2304 [[nodiscard]]
-
2305 inline const bool is_numeric<char>(const char ch) noexcept
-
2306 {
-
2307 return pcs::is_decimal(ch);
-
2308 }
-
2309
-
2311 template<>
-
2312 [[nodiscard]]
-
2313 inline const bool is_numeric<wchar_t>(const wchar_t ch) noexcept
-
2314 {
-
2315 return pcs::is_decimal(ch);
-
2316 }
-
2317
-
2318
-
2319 //--- is_printable() --------------------------------------
-
2321 template<class CharT>
-
2322 [[nodiscard]]
-
2323 inline const bool is_printable(const CharT ch) noexcept
-
2324 {
-
2325 return false;
-
2326 }
-
2327
-
2329 template<>
-
2330 [[nodiscard]]
-
2331 inline const bool is_printable<char>(const char ch) noexcept
-
2332 {
-
2333 return static_cast<const bool>(std::isprint(static_cast<unsigned char>(ch)));
-
2334 }
-
2335
-
2337 template<>
-
2338 [[nodiscard]]
-
2339 inline const bool is_printable<wchar_t>(const wchar_t ch) noexcept
-
2340 {
-
2341 return static_cast<const bool>(std::iswprint(ch));
-
2342 }
-
2343
-
2344
-
2345 //--- is_punctuation() ------------------------------------
-
2347 template<class CharT>
-
2348 [[nodiscard]]
-
2349 inline const bool is_punctuation(const CharT ch) noexcept
-
2350 {
-
2351 return false;
-
2352 }
-
2353
-
2355 template<>
-
2356 [[nodiscard]]
-
2357 inline const bool is_punctuation<char>(const char ch) noexcept
-
2358 {
-
2359 return static_cast<const bool>(std::ispunct(static_cast<unsigned char>(ch)));
-
2360 }
-
2361
-
2363 template<>
-
2364 [[nodiscard]]
-
2365 inline const bool is_punctuation<wchar_t>(const wchar_t ch) noexcept
-
2366 {
-
2367 return static_cast<const bool>(std::iswpunct(ch));
-
2368 }
-
2369
-
2370
-
2371 //--- is_space() ------------------------------------------
-
2373 template<class CharT>
-
2374 [[nodiscard]]
-
2375 inline const bool is_space(const CharT ch) noexcept
-
2376 {
-
2377 return false;
-
2378 }
-
2379
-
2381 template<>
-
2382 [[nodiscard]]
-
2383 inline const bool is_space<char>(const char ch) noexcept
-
2384 {
-
2385 return static_cast<const bool>(std::isspace(static_cast<unsigned char>(ch)));
-
2386 }
-
2387
-
2389 template<>
-
2390 [[nodiscard]]
-
2391 inline const bool is_space<wchar_t>(const wchar_t ch) noexcept
-
2392 {
-
2393 return static_cast<const bool>(std::iswspace(ch));
-
2394 }
-
2395
-
2396
-
2397 //--- is_upper() ------------------------------------------
-
2399 template<class CharT>
-
2400 [[nodiscard]]
-
2401 inline const bool is_upper(const CharT ch) noexcept
-
2402 {
-
2403 return false;
-
2404 }
-
2405
-
2407 template<>
-
2408 [[nodiscard]]
-
2409 inline const bool is_upper<char>(const char ch) noexcept
-
2410 {
-
2411 return static_cast<const bool>(std::isupper(static_cast<unsigned char>(ch)));
-
2412 }
-
2413
-
2415 template<>
-
2416 [[nodiscard]]
-
2417 inline const bool is_upper<wchar_t>(const wchar_t ch) noexcept
-
2418 {
-
2419 return static_cast<const bool>(std::iswupper(ch));
-
2420 }
-
2421
-
2422
-
2423 //--- swap_case() -----------------------------------------
-
2425 template<class CharT>
-
2426 [[nodiscard]]
-
2427 inline const CharT swap_case(const CharT ch) noexcept
-
2428 {
-
2429 if (pcs::is_lower(ch))
-
2430 return pcs::to_upper(ch);
-
2431 else if (pcs::is_upper(ch))
-
2432 return pcs::to_lower(ch);
-
2433 else
-
2434 return ch;
-
2435 }
-
2436
-
2437
-
2438 //--- to_lower() ------------------------------------------
-
2440 template<class CharT>
-
2441 [[nodiscard]]
-
2442 inline const CharT to_lower(const CharT ch) noexcept
-
2443 {
-
2444 return ch;
-
2445 }
-
2446
-
2448 template<>
-
2449 [[nodiscard]]
-
2450 inline const char to_lower<char>(const char ch) noexcept
-
2451 {
-
2452 return std::tolower(static_cast<unsigned char>(ch));
-
2453 }
-
2454
-
2456 template<>
-
2457 [[nodiscard]]
-
2458 inline const wchar_t to_lower<wchar_t>(const wchar_t ch) noexcept
-
2459 {
-
2460 return std::towlower(ch);
-
2461 }
-
2462
-
2463
-
2464 //--- to_upper() ------------------------------------------
-
2466 template<class CharT>
-
2467 [[nodiscard]]
-
2468 inline const CharT to_upper(const CharT ch) noexcept
-
2469 {
-
2470 return ch;
-
2471 }
-
2472
-
2474 template<>
-
2475 [[nodiscard]]
-
2476 inline const char to_upper<char>(const char ch) noexcept
-
2477 {
-
2478 return std::toupper(static_cast<unsigned char>(ch));
-
2479 }
-
2480
-
2482 template<>
-
2483 [[nodiscard]]
-
2484 inline const wchar_t to_upper<wchar_t>(const wchar_t ch) noexcept
-
2485 {
-
2486 return std::towupper(ch);
-
2487 }
-
2488
-
2489#if defined(_MSC_VER)
-
2490# pragma warning(pop) // to avoid boring warnings with litteral operators definitions
-
2491#endif
-
2492
-
2493} // end of namespace pcs // (pythonic c++ strings)
-
TransTable(Key1It first_key, Key1It last_key, ValueIt first_value, ValueIt last_value, Key2It first_not_translated, Key2It last_not_translated)
Creates a TransTable from three containers iterators (#9).
Definition cppstrings.h:317
-
TransTable(const std::map< key_type, value_type > trans_table)
Creates a TransTable from a standard map (#1).
Definition cppstrings.h:197
-
TransTable(const StringViewLike &keys, const StringViewLike &values)
Creates a TransTable from two string views (#10).
Definition cppstrings.h:338
-
TransTable(KeyIt first_key, KeyIt last_key, ValueIt first_value, ValueIt last_value)
Creates a TransTable from two containers iterators (#8).
Definition cppstrings.h:300
-
TransTable(const CppStringT &keys, const CppStringT &values)
Creates a TransTable from two strings (#2).
Definition cppstrings.h:207
-
TransTable(const CharT *keys, const CharT *values, const CharT *not_translated)
Creates a TransTable from three pointers to null-terminated lists of characters (#7).
Definition cppstrings.h:285
-
TransTable() noexcept=default
Default empty constructor.
-
value_type operator[](const key_type ch) noexcept
Indexing operator.
Definition cppstrings.h:365
-
TransTable(const CharT *keys, const CharT *values)
Creates a TransTable from two pointers to null-terminated lists of characters (#6).
Definition cppstrings.h:271
-
TransTable(const CppStringT &keys, const CppStringT &values, const CppStringT &not_translated)
Creates a TransTable from three strings (#3).
Definition cppstrings.h:223
-
TransTable(const CppStringT &keys, const std::initializer_list< CppStringT > &values)
Creates a TransTable from a string and an initalization list (#4).
Definition cppstrings.h:239
-
std::map< typename key_type, typename value_type > & get_table() noexcept
< for tests purposes
Definition cppstrings.h:376
-
TransTable(const CppStringT &keys, const std::initializer_list< CppStringT > values, const CppStringT &not_translated)
Creates a TransTable from a string, an initalization list and a string (#5).
Definition cppstrings.h:255
-
This is the templated base class for all CppString classes.
Definition cppstrings.h:166
-
CppStringT strip(const CppStringT &removedchars) const noexcept
Returns a copy of the string with the leading and trailing characters removed.
Definition cppstrings.h:1805
-
constexpr bool contains_n(const CppStringT &sub, const size_type start, const size_type count=-1) const noexcept
Returns true if the passed string is found within the slice str[start:start+count-1],...
Definition cppstrings.h:512
-
std::vector< CppStringT > rsplit(const CppStringT &sep) noexcept
Returns a vector of the words in the whole string, using sep as the delimiter string.
Definition cppstrings.h:1491
-
CppStringT removeprefix(const CppStringT &prefix) const noexcept
If the string starts with the prefix string, returns a new string with the prefix removed....
Definition cppstrings.h:1223
-
constexpr bool contains(const CppStringT &substr) const noexcept
Returns true if this string contains the passed string, or false otherwise.
Definition cppstrings.h:479
-
CppStringT operator*(std::int64_t count) const noexcept
Generates a new string with count times the content of this string.
Definition cppstrings.h:1186
-
const bool isdecimal() const noexcept
Returns true if all characters in the string are decimal characters and there is at least one charact...
Definition cppstrings.h:841
-
std::vector< CppStringT > splitlines(const bool keep_end=false) const noexcept
Return a list of the lines in the string, breaking at line boundaries.
Definition cppstrings.h:1671
-
CppStringT strip() const noexcept
Returns a copy of the string with the leading and trailing whitespaces removed.
Definition cppstrings.h:1812
-
CppStringT title() const noexcept
Returns a titlecased copy of the string where words start with an uppercase character and the remaini...
Definition cppstrings.h:1848
-
constexpr size_type index_n(const CppStringT &sub, const size_type count) const
Like find_n(sub, count), but raises NotFoundException when the substring is not found.
Definition cppstrings.h:790
-
CppStringT & format(const std::basic_format_string< char, std::type_identity_t< ArgsT >... > frmt, ArgsT &&... args)
Definition cppstrings.h:737
-
CppStringT operator()(Slice< IntT > slice) const noexcept
Generates a new string according to the specified slice.
Definition cppstrings.h:1144
-
const bool isdigit() const noexcept
Returns true if all characters in the string are digits and there is at least one character,...
Definition cppstrings.h:862
-
constexpr size_type find(const CppStringT &sub, const size_type start=0, const size_type end=-1) const noexcept
Returns the lowest index in the string where substring sub is found within the slice str[start:end],...
Definition cppstrings.h:666
-
constexpr size_type index(const CppStringT &sub, const size_type start=0, const size_type end=-1) const
Definition cppstrings.h:762
-
const bool ispunctuation() const noexcept
Returns true if the string contains only one character and if this character belongs to the ASCII pun...
Definition cppstrings.h:938
-
CppStringT translate(TransTable &table) noexcept
Returns a copy of the string in which each character has been mapped through the given translation ta...
Definition cppstrings.h:1870
-
constexpr size_type rindex(const CppStringT &sub, const size_type start) const
Like rfind(sub, start), but raises NotFoundException when the substring is not found.
Definition cppstrings.h:1398
-
CppStringT expand_tabs(const size_type tabsize=8) const noexcept
Returns a copy of the string where all tab characters are replaced by one or more spaces,...
Definition cppstrings.h:626
-
CppStringT join(const CppStringT &s) const noexcept
Single parameter signature. Returns a copy of this parameter.
Definition cppstrings.h:1043
-
const bool startswith(const std::initializer_list< CppStringT > &prefixes, const size_type start, const size_type end) const noexcept
Returns true if the string starts with any of the specified prefixes, otherwise returns false....
Definition cppstrings.h:1760
-
std::vector< CppStringT > rsplit(const size_type maxsplit) noexcept
Returns a vector of the words in the string, as seperated with whitespace strings....
Definition cppstrings.h:1498
-
const bool startswith_n(const CppStringT &prefix, const size_type start, const size_type count) const noexcept
Returns true if the string starts with the specified suffix, otherwise returns false....
Definition cppstrings.h:1777
-
const bool endswith(const CppStringT &suffix) const noexcept
Returns true if the string ends with the specified suffix, otherwise returns false....
Definition cppstrings.h:579
-
const bool endswith(const CppStringT &suffix, const size_type start, const size_type end) const noexcept
Returns true if the string ends with the specified suffix, otherwise returns false....
Definition cppstrings.h:565
-
const bool isalpha() const noexcept
Returns true if all characters in the string are alphabetic and there is at least one character,...
Definition cppstrings.h:815
-
CppStringT capitalize() noexcept
Returns a copy of the string with its first character capitalized and the rest lowercased.
Definition cppstrings.h:443
-
const bool endswith_n(const std::initializer_list< CppStringT > &suffixes, const size_type start, const size_type count) const noexcept
Returns true if the string ends with any of the specified suffixes, otherwise returns false....
Definition cppstrings.h:617
-
constexpr size_type rfind_n(const CppStringT &sub, const size_type start, const size_type count) const noexcept
Returns the highest index in the string where substring sub is found within the slice str[start:start...
Definition cppstrings.h:1353
-
CppStringT join(const CppStringT &first, const NextCppStringsT &... others) const noexcept
Returns a string which is the concatenation of the strings in the parameters list.
Definition cppstrings.h:1035
-
constexpr size_type rindex(const CppStringT &sub) const
Like rfind(sub), but raises NotFoundException when the substring is not found.
Definition cppstrings.h:1409
-
std::vector< CppStringT > split(const CppStringT &sep, const size_type maxsplit) noexcept
Returns a vector of the words in the string, using sep as the delimiter string. At most maxsplit spli...
Definition cppstrings.h:1614
-
const bool isnumeric() const noexcept
Returns true if all characters in the string are numeric characters, and there is at least one charac...
Definition cppstrings.h:915
-
constexpr size_type count_n(const CppStringT &sub, const size_type length) const noexcept
Returns the number of non-overlapping occurrences of substring sub in the range [0,...
Definition cppstrings.h:556
-
const bool startswith(const CppStringT &prefix, const size_type start, const size_type end) const noexcept
Returns true if the string starts with the specified prefix, otherwise returns false....
Definition cppstrings.h:1739
-
CppStringT & format(const std::basic_format_string< T, std::type_identity_t< ArgsT >... > frmt, ArgsT &&... args)
Formats this string according to c++20 std::format() specification. Returns this string.
Definition cppstrings.h:728
-
std::vector< CppStringT > rpartition(const CppStringT &sep) const noexcept
Splits the string at the last occurrence of sep, and returns a 3-items vector containing the part bef...
Definition cppstrings.h:1462
-
const bool endswith_n(const CppStringT &suffix, const size_type count) const noexcept
Returns true if the string ends with the specified suffix, otherwise returns false....
Definition cppstrings.h:610
-
CppStringT rjust(const size_type width, const value_type fillch=value_type(' ')) const noexcept
Returns the string right justified in a string of length width.
Definition cppstrings.h:1446
-
const bool isprintable() const noexcept
Returns true if all characters in the string are printable or if the string is empty,...
Definition cppstrings.h:929
-
constexpr size_type rindex(const CppStringT &sub, const size_type start, const size_type end) const
Like rfind(sub, start, end), but raises NotFoundException when the substring is not found.
Definition cppstrings.h:1383
-
CppStringT & upper() noexcept
In-place replaces all characters of the string with their uppercase conversion. Returns a reference t...
Definition cppstrings.h:1887
-
CppStringT swapcase() const noexcept
Returns a copy of the string with uppercase characters converted to lowercase and vice versa.
Definition cppstrings.h:1837
-
constexpr size_type find_n(const CppStringT &sub, const size_type count) const noexcept
Returns the lowest index in the string where substring sub is found within the slice str[0:count-1],...
Definition cppstrings.h:719
-
static const value_type lower(const value_type ch) noexcept
Returns lowercase conversion of the character.
Definition cppstrings.h:1095
-
const bool endswith(const CppStringT &suffix, const size_type end) const noexcept
Returns true if the string ends with the specified suffix, otherwise returns false....
Definition cppstrings.h:572
-
const bool isascii() const noexcept
Returns true if the string is empty or all characters in the string are ASCII, or false otherwise.
Definition cppstrings.h:827
-
const bool is_words_sep() const noexcept
Returns true if there are only whitespace and punctuation characters in the string and there is at le...
Definition cppstrings.h:982
-
constexpr size_type count_n(const CppStringT &sub, const size_type start, const size_type length) const noexcept
Returns the number of non-overlapping occurrences of substring sub in the range [start,...
Definition cppstrings.h:549
-
constexpr size_type rfind_n(const CppStringT &sub, const size_type count) const noexcept
Returns the highest index in the string where substring sub is found within the slice str[0:count-1],...
Definition cppstrings.h:1367
-
constexpr size_type count(const CppStringT &sub, const size_type start=0, const size_type end=-1) const noexcept
Returns the number of non-overlapping occurrences of substring sub in the range [start,...
Definition cppstrings.h:526
-
std::vector< CppStringT > split() noexcept
Returns a vector of the words in the whole string, as seperated with whitespace strings.
Definition cppstrings.h:1578
-
const bool endswith_n(const CppStringT &suffix, const size_type start, const size_type count) const noexcept
Returns true if the string ends with the specified suffix, otherwise returns false....
Definition cppstrings.h:603
-
std::vector< CppStringT > rsplit() noexcept
Returns a vector of the words in the whole string, as seperated with whitespace strings.
Definition cppstrings.h:1484
-
CppStringT rstrip() const noexcept
Returns a copy of the string with trailing whitespaces removed.
Definition cppstrings.h:1562
-
const bool endswith(const std::initializer_list< CppStringT > &suffixes, const size_type start, const size_type end) const noexcept
Returns true if the string ends with any of the specified suffixes, otherwise returns false....
Definition cppstrings.h:586
-
CppStringT rstrip(const CppStringT &removedchars) const noexcept
Returns a copy of the string with trailing characters removed.
Definition cppstrings.h:1552
-
std::vector< CppStringT > split(const size_type maxsplit) noexcept
Returns a vector of the words in the string, as seperated with whitespace strings....
Definition cppstrings.h:1607
-
const bool isalnum() const noexcept
Returns true if all characters in the string are alphanumeric and there is at least one character,...
Definition cppstrings.h:799
-
const bool isidentifier() const noexcept
Returns true if the string is not empty and is a valid identifier according to the language definitio...
Definition cppstrings.h:889
-
CppStringT & format(const std::basic_format_string< wchar_t, std::type_identity_t< ArgsT >... > frmt, ArgsT &&... args)
Definition cppstrings.h:746
-
const bool isspace() const noexcept
Returns true if there are only whitespace characters in the string and there is at least one characte...
Definition cppstrings.h:947
-
CppStringT substr(const size_type start, const size_type count=-1) const noexcept
Definition cppstrings.h:1821
-
CppStringT join(const std::vector< CppStringT > &strs) const noexcept
Returns a string which is the concatenation of the strings in the vector parameter.
Definition cppstrings.h:1017
-
constexpr size_type rfind(const CppStringT &sub, const size_type start) const noexcept
Returns the highest index in the string where substring sub is found starting at start position in st...
Definition cppstrings.h:1316
-
const CppStringT join() const noexcept
Empty parameters list signature. Returns a copy of current string.
Definition cppstrings.h:1050
-
std::vector< CppStringT > rsplit(const CppStringT &sep, const size_type maxsplit) noexcept
Returns a vector of the words in the string, using sep as the delimiter string. At most maxsplit spli...
Definition cppstrings.h:1505
-
const bool startswith_n(const std::initializer_list< CppStringT > &prefix, const size_type start, const size_type count) const noexcept
Returns true if the string starts with any of the specified suffixes, otherwise returns false....
Definition cppstrings.h:1791
-
constexpr size_type rfind(const CppStringT &sub) const noexcept
Returns the highest index in the string where C-substring sub is found in the whole string,...
Definition cppstrings.h:1337
-
CppStringT lstrip() const noexcept
Returns a copy of the string with leading whitespaces removed.
Definition cppstrings.h:1120
-
CppStringT join(const std::array< CppStringT, N > &strs) const noexcept
Returns a string which is the concatenation of the strings in the array parameter.
Definition cppstrings.h:1000
-
constexpr size_type rindex_n(const CppStringT &sub, const size_type count) const
Like rfind_n(sub, count), but raises NotFoundException when the substring is not found.
Definition cppstrings.h:1433
-
constexpr size_type find_n(const CppStringT &sub, const size_type start, const size_type count) const noexcept
Returns the lowest index in the string where substring sub is found within the slice str[start:start+...
Definition cppstrings.h:691
-
std::vector< CppStringT > partition(const CppStringT &sep) const noexcept
Splits the string at the first occurrence of sep, and returns a 3-items vector containing the part be...
Definition cppstrings.h:1205
-
std::vector< CppStringT > split(const CppStringT &sep) noexcept
Returns a vector of the words in the whole string, using sep as the delimiter string.
Definition cppstrings.h:1597
-
const bool startswith(const CppStringT &prefix, const size_type start) const noexcept
Returns true if the string starts with the specified prefix, otherwise returns false....
Definition cppstrings.h:1746
-
CppStringT zfill(const size_type width) const noexcept
Returns a copy of the string left filled with ASCII '0' digits to make a string of length width.
Definition cppstrings.h:1914
-
CppStringT replace(const CppStringT &old, const CppStringT &new_, size_type count=-1) const noexcept
Returns a copy of the string with first count occurrences of substring 'old' replaced by 'new_'.
Definition cppstrings.h:1251
-
CppStringT & lower() noexcept
In-place replaces all characters of the string with their lowercase conversion. Returns a reference t...
Definition cppstrings.h:1078
-
CppStringT removesuffix(const CppStringT &suffix) const noexcept
If the string ends with the suffix string, returns a new string with the suffix removed....
Definition cppstrings.h:1237
-
const bool istitle() const noexcept
Returns true if the string is a titlecased string and there is at least one character,...
Definition cppstrings.h:964
-
const bool startswith_n(const CppStringT &prefix, const size_type count) const noexcept
Returns true if the string starts with the specified suffix, otherwise returns false....
Definition cppstrings.h:1784
-
const bool startswith(const CppStringT &prefix) const noexcept
Returns true if the string starts with the specified prefix, otherwise returns false....
Definition cppstrings.h:1753
-
const bool islower() const noexcept
Returns true if all cased characters in the string are lowercase and there is at least one cased char...
Definition cppstrings.h:898
-
CppStringT ljust(const size_type width, const value_type fillch=value_type(' ')) const noexcept
Returns the string left justified in a string of length width.
Definition cppstrings.h:1063
-
CppStringT lstrip(const CppStringT &removedchars) const noexcept
Returns a copy of the string with leading characters removed.
Definition cppstrings.h:1110
-
constexpr size_type index_n(const CppStringT &sub, const size_type start, const size_type count) const
Like find_n(sub, start, count), but raises NotFoundException when the substring is not found.
Definition cppstrings.h:779
-
CppStringT center(const size_type width, const value_type fillch=value_type(' ')) const noexcept
Returns a copy of the string centered in a string of length width.
Definition cppstrings.h:462
-
const bool isupper() const noexcept
Returns true if all cased characters in the string are uppercase and there is at least one cased char...
Definition cppstrings.h:973
-
constexpr size_type rfind(const CppStringT &sub, const size_type start, const size_type end) const noexcept
Returns the highest index in the string where substring sub is found within the slice str[start:end],...
Definition cppstrings.h:1288
-
static const value_type upper(const value_type ch) noexcept
Returns uppercase conversion of the character.
Definition cppstrings.h:1900
-
constexpr size_type rindex_n(const CppStringT &sub, const size_type start, const size_type count) const
Like rfind_n(sub, start, count), but raises NotFoundException when the substring is not found.
Definition cppstrings.h:1422
-
Base class for slices, with start, stop and step specified values.
Definition cppstrings.h:1949
-
IntT stop()
Returns the stop index of this slide.
Definition cppstrings.h:2001
-
IntT start()
Returns the start index of this slide.
Definition cppstrings.h:2000
-
IntT step()
Returns the step value of this slide.
Definition cppstrings.h:2002
-
Slice operator++() noexcept
< iterates one step, pre-increment. Caution: index may be out of bounds. Check '!end()' before derefe...
Definition cppstrings.h:1981
-
Slice operator++(int) noexcept
< iterates one step, post-increment. Caution: index may be out of bounds. Check '!...
Definition cppstrings.h:1987
-
Slice(const IntT start=DEFAULT, const IntT stop=DEFAULT, const IntT step=DEFAULT) noexcept
< Valued constructor
Definition cppstrings.h:1954
-
const IntT begin(const CppStringT< CharT > &str) noexcept
< starts iterating on specified CppString.
Definition cppstrings.h:1970
-
virtual ~Slice() noexcept=default
Default destructor.
-
const bool end() const noexcept
< returns true when iterating is over, or false otherwise.
Definition cppstrings.h:1976
-
const IntT operator*() noexcept
< dereferences the slice.
Definition cppstrings.h:1994
-
Definition cppstrings.h:41
-
const bool is_digit< wchar_t >(const wchar_t ch) noexcept
Returns true if character is a decimal digit, or false otherwise.
Definition cppstrings.h:2241
-
const bool is_punctuation(const CharT ch) noexcept
Returns true if character ch is punctuation, or false otherwise.
Definition cppstrings.h:2349
-
const bool is_alpha< wchar_t >(const wchar_t ch) noexcept
Returns true if character ch is alphabetic, or false otherwise. Conforms to the current locale settin...
Definition cppstrings.h:2179
-
CppStringT< char > CppString
Specialization of basic class with template argument 'char'.
Definition cppstrings.h:53
-
const bool is_printable< char >(const char ch) noexcept
Returns true if character ch is printable, or false otherwise.
Definition cppstrings.h:2331
-
const bool is_numeric< char >(const char ch) noexcept
Returns true if character is a decimal digit, or false otherwise.
Definition cppstrings.h:2305
-
const bool is_decimal< char >(const char ch) noexcept
Returns true if character is a decimal digit, or false otherwise.
Definition cppstrings.h:2207
-
const bool is_lower< char >(const char ch) noexcept
Returns true if character ch is lowercase, or false otherwise. Conforms to the current locale setting...
Definition cppstrings.h:2279
-
const bool is_printable< wchar_t >(const wchar_t ch) noexcept
Returns true if character ch is punctuation, or false otherwise. Conforms to the current locale setti...
Definition cppstrings.h:2339
-
const bool is_punctuation< wchar_t >(const wchar_t ch) noexcept
Returns true if character ch is punctuation, or false otherwise. Conforms to the current locale setti...
Definition cppstrings.h:2365
-
const bool is_alpha(const CharT ch) noexcept
struct of slices with default start values
Definition cppstrings.h:2163
-
const char to_lower< char >(const char ch) noexcept
Returns the lowercase form of character ch if it exists, or ch itself otherwise. Conforms to the curr...
Definition cppstrings.h:2450
-
const bool is_printable(const CharT ch) noexcept
Returns true if character ch is printable, or false otherwise.
Definition cppstrings.h:2323
-
const bool is_digit(const CharT ch) noexcept
Returns true if character is a decimal digit, or false otherwise.
Definition cppstrings.h:2225
-
const bool is_space< wchar_t >(const wchar_t ch) noexcept
Returns true if character ch is alphabetic, or false otherwise. Conforms to the current locale settin...
Definition cppstrings.h:2391
-
const CharT to_upper(const CharT ch) noexcept
Returns the uppercase form of character ch if it exists, or ch itself otherwise.
Definition cppstrings.h:2468
-
const bool is_decimal< wchar_t >(const wchar_t ch) noexcept
Returns true if character is a decimal digit, or false otherwise.
Definition cppstrings.h:2215
-
const bool is_space< char >(const char ch) noexcept
Returns true if character ch is alphabetic, or false otherwise. Conforms to the current locale settin...
Definition cppstrings.h:2383
-
CppStringT< wchar_t > CppWString
Specialization of basic class with template argument 'wchar_t'.
Definition cppstrings.h:54
-
const bool is_upper(const CharT ch) noexcept
Returns true if character is uppercase, or false otherwise.
Definition cppstrings.h:2401
-
const CharT to_lower(const CharT ch) noexcept
Returns the lowercase form of character ch if it exists, or ch itself otherwise.
Definition cppstrings.h:2442
-
const bool is_decimal(const CharT ch) noexcept
Returns true if character is a decimal digit, or false otherwise.
Definition cppstrings.h:2199
-
const bool is_punctuation< char >(const char ch) noexcept
Returns true if character ch is punctuation, or false otherwise. Conforms to the current locale setti...
Definition cppstrings.h:2357
-
const wchar_t to_upper< wchar_t >(const wchar_t ch) noexcept
Returns the uppercase form of character ch if it exists, or ch itself otherwise. Conforms to the curr...
Definition cppstrings.h:2484
-
const wchar_t to_lower< wchar_t >(const wchar_t ch) noexcept
Returns the lowercase form of character ch if it exists, or ch itself otherwise. Conforms to the curr...
Definition cppstrings.h:2458
-
const bool is_upper< wchar_t >(const wchar_t ch) noexcept
Returns true if character ch is uppercase, or false otherwise. Conforms to the current locale setting...
Definition cppstrings.h:2417
-
const char to_upper< char >(const char ch) noexcept
Returns the uppercase form of character ch if it exists, or ch itself otherwise. Conforms to the curr...
Definition cppstrings.h:2476
-
const bool is_id_start(const CharT ch) noexcept
Returns true if character is a starting char for identifiers, or false otherwise.
Definition cppstrings.h:2261
-
const bool is_upper< char >(const char ch) noexcept
Returns true if character ch is uppercase, or false otherwise. Conforms to the current locale setting...
Definition cppstrings.h:2409
-
const CharT swap_case(const CharT ch) noexcept
Returns the swapped case form of character ch if it exists, or ch itself otherwise.
Definition cppstrings.h:2427
-
const bool is_ascii(const CharT ch) noexcept
Returns true if character ch gets ASCII code, or false otherwise.
Definition cppstrings.h:2189
-
const bool is_numeric< wchar_t >(const wchar_t ch) noexcept
Returns true if character is a decimal digit, or false otherwise.
Definition cppstrings.h:2313
-
const bool is_lower< wchar_t >(const wchar_t ch) noexcept
Returns true if character ch is lowercase, or false otherwise. Conforms to the current locale setting...
Definition cppstrings.h:2287
-
const bool is_alpha< char >(const char ch) noexcept
Returns true if character ch is alphabetic, or false otherwise. Conforms to the current locale settin...
Definition cppstrings.h:2171
-
const bool is_lower(const CharT ch) noexcept
Returns true if character is lowercase, or false otherwise.
Definition cppstrings.h:2271
-
const bool is_id_continue(const CharT ch) noexcept
Returns true if character is a continuing char for identifiers, or false otherwise.
Definition cppstrings.h:2251
-
const bool is_space(const CharT ch) noexcept
Returns true if character ch is white space, or false otherwise.
Definition cppstrings.h:2375
-
const bool is_numeric(const CharT ch) noexcept
Returns true if character is a decimal digit, or false otherwise.
Definition cppstrings.h:2297
-
const bool is_digit< char >(const char ch) noexcept
Returns true if character is a decimal digit, or false otherwise.
Definition cppstrings.h:2233
-
Base class for slices, with start, stop and step specified values.
Definition cppstrings.h:2065
-
virtual ~StartSlice() noexcept=default
Default destructor.
-
StartSlice(const IntT start=MyBaseClass::DEFAULT) noexcept
< Valued constructor
Definition cppstrings.h:2069
-
struct of slices with default step values
Definition cppstrings.h:2129
-
StartStepSlice(const IntT start=MyBaseClass::DEFAULT, const IntT step=MyBaseClass::DEFAULT) noexcept
< Valued constructor
Definition cppstrings.h:2133
-
virtual ~StartStepSlice() noexcept=default
Default destructor.
-
struct of slices with default start and stop values
Definition cppstrings.h:2113
-
StartStopSlice(const IntT start=MyBaseClass::DEFAULT, const IntT stop=MyBaseClass::DEFAULT) noexcept
< Valued constructor
Definition cppstrings.h:2117
-
virtual ~StartStopSlice() noexcept=default
Default destructor.
-
struct of slices with default start and step values
Definition cppstrings.h:2097
-
virtual ~StepSlice() noexcept=default
Default destructor.
-
StepSlice(const IntT step=MyBaseClass::DEFAULT) noexcept
< Valued constructor
Definition cppstrings.h:2101
-
struct of slices with default stop and step values
Definition cppstrings.h:2081
-
virtual ~StopSlice() noexcept=default
Default destructor.
-
StopSlice(const IntT stop=MyBaseClass::DEFAULT) noexcept
< Valued constructor
Definition cppstrings.h:2085
-
struct of slices with default stop values
Definition cppstrings.h:2146
-
StopStepSlice(const IntT stop=MyBaseClass::DEFAULT, const IntT step=MyBaseClass::DEFAULT) noexcept
< Valued constructor
Definition cppstrings.h:2150
-
virtual ~StopStepSlice() noexcept=default
Default destructor.
-
-
-
- - - - diff --git a/cpp-strings/html/files_dup.js b/cpp-strings/html/files_dup.js deleted file mode 100644 index 0546064..0000000 --- a/cpp-strings/html/files_dup.js +++ /dev/null @@ -1,4 +0,0 @@ -var files_dup = -[ - [ "cppstrings.h", "cppstrings_8h_source.html", null ] -]; \ No newline at end of file diff --git a/cpp-strings/html/index.html b/cpp-strings/html/index.html deleted file mode 100644 index 528fc62..0000000 --- a/cpp-strings/html/index.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - -cpp-strings: Library cpp-strings - - - - - - - - - - - - - - -
-
- - - - - - -
-
cpp-strings 1.0.0 -
-
Pythonic c++ strings
-
-
- - - - - - - -
-
- -
-
-
- -
-
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Library cpp-strings
-
-
-

-

license Latest release code_coverage tests

-

-What if c++ strings where as easy to use as Python strings?

-

Let's just use c++ strings as are Python ones, with same API or as similar API as possible.
- Library cpp-strings is fully templated. Just download header file cppstrings.h and put it anywhere in your project. Notice: all of its stuff is declared and defined in namespace pcs - which stands for P**ythonic **C++ **S**trings.

-
    -
  • The templated class pcs::CppStringT<> defines all constructors and methods that implement the equivalent of Python strings API.
    -
  • -
  • Class pcs::CppString specializes the templated class with char characters.
  • -
  • Class pcs::CppWString specializes the templated class with wchar_t characters.
  • -
-

The cpp-strings HTML documentation is available in subdirectory cpp-strings/html. Click on file index.html there from your local file manager to browse its content.

-

Library cpp-strings is implemented with the currently most recent c++ standard available with gcc, clang and msvc c++ compilers, i.e. standard c++20.

-
    -
  • directory cpp-strings contains the header file cppstring.h.
    - This is the header file to include in your projects.
  • -
  • directory cpp-strings-tests contains the unit-tests file cpp-strings-tests.cpp
    - This file tests all the library stuff. It is a valuable code container with so many examples of use of the library, the classes, the methods and the functions it defines.
  • -
-

The code has been developed using VS2022 IDE. As such, unitary tests have been coded using Microsoft Visual Studio Cpp Unit Test Framework. The related VS project is provided with this library.

-

Notice: no clang, gcc or msvc specific declarations or goodies have been use to code library cpp-strings. It should then be compilable with any of these compilers. To be able to use it with your project, just ensure that the c++ standard used with you favorite compiler is c++20:

    -
  • options -std=c++20 or -std=c++latest for clang and gcc (v. 10 and above),
    - or option -std=c++2a for clang and gcc (v. 9 and earlier);
  • -
  • options /std=c++20 or /std=c++latest for Visual Studio 2019 and later.
  • -
-

If you want to run the unitary tests, well, use the last version of Visual Studio (i.e. VS 2022, by July 2025). The Community free version will truly be fine.
- The vcproject associated with the unit tests in cpp-strings is already configured to use the option flag /std:c++latest since the implemented code uses a very few but very useful c++23 goodies.

-

github repository: https://github.com/schmouk/pythonic-cpp-strings
- pythonic-cpp-strings github web pages: https://schmouk.github.io/pythonic-cpp-strings/

-
-

-License

-
Library cpp-strings
-"What if c++ strings where as easy to use as Python strings?"
-
-Copyright (C) 2023-2025 Philippe Schmouker
-contact - ph (dot) schmouker (at) gmail (dot) com
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation,  either version 3  of the License,  or
-(at your option) any later version.
-
-This program is distributed in the hope  that  it  will  be  useful,
-but  WITHOUT  ANY  WARRANTY;  without  even  the implied warranty of
-MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE.  See  the
-GNU General Public License for more details.
-
-You should have received a copy  of  the  GNU General Public License
-along with this program.  If not, see <https://www.gnu.org/licenses/>.
-

-

-Intro

-

The creation of this library has been started with the aim at easing the use of strings in c++. Other projects exist, even aiming also to implement a Python-like strings API, but the only ones we have found were either started but not completed, or were not implementing the whole Python API.

-

So, we started to work on Pythonic c++ strings. Library cpp-strings is now ready. It fully implements the Python API (even with a c++ implementation of slices) and it is fully tested with unitary tests.

-

The implementation of library cpp-strings is fully templated and is contained into a single header file: cpp-strings/cppstrings.h. To take a whole benefit of it, just add this header file to your project and include it in your own files. It very fastly compiles. That's all!

-

Header file cpp-strings/cppstrings.h defines:

    -
  • templated class template<typename CharT> class pcs::CppStringT which implements all the stuff about pythonic c++ strings. It inherits from c++ STL class std::basic_string<CharT>, so it gets access to all c++ STL methods, functions and goodies about strings;
  • -
  • this class is specialized by: using pcs::CppString> = pcs::CppStringT<char> for pythonic c++ strings based on char characters;
  • -
  • it is also specialized by: using pcs::CppWString> = pcs::CppStringT<wchar_t> for pythonic c++ strings based on wchar_t characters.
  • -
-

The unitary tests are provided in directory cpp-strings-tests/. File cpp-strings-tests/cpp-strings-tests.cpp contains the related code. Tests have been coded using VS2022 IDE and as such, are using the Microsoft Visual Studio Cpp Unit Test Framework. The related VS project can be found in the same directory. It is already configured to create code for Release as well as for Debug configurations, and for 32-bits or 64-bits platforms at your choice.
- This .cpp file is a great place to see cpp-strings code in action. Each structure, class, method, litteral operator and function being unitary tested in here, you should find there many examples of its use for all cpp-strings stuff.

-
-

-Latest Release - Release 1.0 (1.0.0.229) 2025/07

-

The coding of this project started by March 2023 and had been put in standby mode for some months - no time to work on it. The very first release is now availble (since July 2025), as Release 1.0.

-

This release has been fully tested. Code coverage is 100%.

-

Release 1.0 implements all Python strings API but one feature (see below).

-

Python slices are implemented via c++ operator() as declared and defined in the templated class pcs::CppStringT<>. Python slices have next specific notation: [start : stop : step] and allow the running step by step through range [start, stop) (notice: stop is excluded from the range). Operator (start, stop, step) acts the same way while running through the content of pythonic c++ strings. A dedicated base class Slice is also provided and can be passed as argument to operator(). It is derived in many simpler slices classes, since Python slices may not define either start, stop or step which then get default values (resp. 0, end-of-sequence, and 1).

-

-Missing parts in Release 1.0

-

Python strings are based on Unicode chars. This is currently not the case for pythonic c++ strings in cpp-strings.
- Unicode encoding allows for a specific comparison mode on strings, the casefold mode. There, Unicode chars are transformed into their lower equivalent char in a standardized manner which is more "agressive" than the simpler lowering method lower(). Comparing strings without taking into account the case of their chars is then performed in a far more accurate manner.
- This feature is currently NOT implemented in library cpp-strings.

-

So up to now, if you want to compare pythonic c++ strings from cpp-strings on whatever the case is for each of their chars, compare them applying method .lower() to both strings. This will do the job for chars and for wchar_t also for a majority of languages (but might fail for very few signs of specific languages in this last case).

-

Notice: dealing with Unicode chars and implementing method casefold() as it is the case in Python is planned for a next release of library cpp-strings.
- N.B. "*planned for a next release*" does not imply that a fixed date is planned either.

-
-

-Documentation

-

The cpp-strings HTML documentation is available in subdirectory cpp-strings/html. Click on file index.html there from your local file manager to browse its content.

-

It has then been produced with the great utility doxygen developed by Vicente Hernando (the doxygen Github repository can be accessed here, and the utility can be downloaded from there: https://www.doxygen.nl/download.html).

-

This is a short documentation of the library. For some of its part it is a copy of the Python original documentation on strings. For its other part it documents the c++ implementation of cpp-strings.

-

And remember: to better understand how to use this pythonic c++ strings library, have a look also at cpp-strings-tests/cpp-strings-tests.cpp to see cpp-strings library code in action!

-
- -
-
-
- - - - diff --git a/cpp-strings/html/index.js b/cpp-strings/html/index.js deleted file mode 100644 index c46f603..0000000 --- a/cpp-strings/html/index.js +++ /dev/null @@ -1,10 +0,0 @@ -var index = -[ - [ "License", "index.html#autotoc_md3", null ], - [ "Intro", "index.html#autotoc_md4", null ], - [ "Latest Release - Release 1.0 (1.0.0.229) 2025/07", "index.html#autotoc_md6", [ - [ "What if c++ strings where as easy to use as Python strings?", "index.html#autotoc_md1", null ], - [ "Missing parts in Release 1.0", "index.html#autotoc_md7", null ] - ] ], - [ "Documentation", "index.html#autotoc_md9", null ] -]; \ No newline at end of file diff --git a/cpp-strings/html/navtreeindex1.js b/cpp-strings/html/navtreeindex1.js deleted file mode 100644 index 28cf466..0000000 --- a/cpp-strings/html/navtreeindex1.js +++ /dev/null @@ -1,105 +0,0 @@ -var NAVTREEINDEX1 = -{ -"classpcs_1_1_slice.html#abdb6694913ed37cf4efc5d85e990c7b5":[1,0,0,1,1], -"classpcs_1_1_slice.html#abdb6694913ed37cf4efc5d85e990c7b5":[2,0,0,1,1], -"classpcs_1_1_slice.html#aee5b0e0110ef1ee32763da9b2386b59c":[1,0,0,1,3], -"classpcs_1_1_slice.html#aee5b0e0110ef1ee32763da9b2386b59c":[2,0,0,1,3], -"classpcs_1_1_slice.html#afa6b7dc85e796da20dd5933d49400996":[1,0,0,1,4], -"classpcs_1_1_slice.html#afa6b7dc85e796da20dd5933d49400996":[2,0,0,1,4], -"cppstrings_8h_source.html":[3,0,0], -"files.html":[3,0], -"functions.html":[2,3,0], -"functions_func.html":[2,3,1], -"hierarchy.html":[2,2], -"index.html":[], -"index.html":[0], -"index.html#autotoc_md1":[0], -"index.html#autotoc_md3":[0,0], -"index.html#autotoc_md4":[0,1], -"index.html#autotoc_md6":[0,2], -"index.html#autotoc_md7":[0,2,1], -"index.html#autotoc_md9":[0,3], -"namespacemembers.html":[1,1,0], -"namespacemembers_func.html":[1,1,1], -"namespacemembers_type.html":[1,1,2], -"namespacepcs.html":[1,0,0], -"namespacepcs.html#a01c6093b1a8ef52114f799635ff930d5":[1,0,0,19], -"namespacepcs.html#a02d340dd9c510eda0fbfed07a08d0792":[1,0,0,31], -"namespacepcs.html#a069625790af3ecf05a424c2c53eabfc0":[1,0,0,12], -"namespacepcs.html#a08d21c458d61442667df24212920d0d9":[1,0,0,8], -"namespacepcs.html#a1cd19ec212e3ada992a8effb8d5d872d":[1,0,0,29], -"namespacepcs.html#a242e3c28e3d47d19d70ab70d83e74d35":[1,0,0,26], -"namespacepcs.html#a28f77929d599a862403a4471f6b73fc3":[1,0,0,15], -"namespacepcs.html#a29893984c95e53a6efe01f74c2dcc03a":[1,0,0,23], -"namespacepcs.html#a30ed0cd7942d081369f78a49a029d8b1":[1,0,0,30], -"namespacepcs.html#a363e2bac9c403a623c5a410f7113edd3":[1,0,0,33], -"namespacepcs.html#a40bc3d234e3c737f34d267151ca62014":[1,0,0,10], -"namespacepcs.html#a4c4164fedd9cb659873a980fa855f4a2":[1,0,0,44], -"namespacepcs.html#a51cd6883557ab31a1e0c8e7b5ab27351":[1,0,0,28], -"namespacepcs.html#a52b12f8beb4ab7d8b819ca24180e08d1":[1,0,0,17], -"namespacepcs.html#a57a765c6eb624107a2176a56cf2220a7":[1,0,0,36], -"namespacepcs.html#a607c82cc94f2b6473d8391334eed8c14":[1,0,0,46], -"namespacepcs.html#a60a2017b25d3d06b83e72f5ed5a93d09":[1,0,0,16], -"namespacepcs.html#a714cfa835ef4db5180309829ee8e27a9":[1,0,0,35], -"namespacepcs.html#a79a822cea8e301fd51d2ed51dff57286":[1,0,0,9], -"namespacepcs.html#a8cb1cd0a1e39d92893eb7d22145f5d65":[1,0,0,37], -"namespacepcs.html#a965f285db4253ce86ed59fccc2e8be61":[1,0,0,43], -"namespacepcs.html#a9f0ba4e85fc273fad1a8b489f3be7fa8":[1,0,0,14], -"namespacepcs.html#aa36d34c2227cde5856e8d61fa6e4af58":[1,0,0,32], -"namespacepcs.html#aaf8dcc64819cbf8631fc63e0dd522811":[1,0,0,48], -"namespacepcs.html#ab097a99126055ab4c843eb6efb573bb1":[1,0,0,45], -"namespacepcs.html#ab5077443809e9e4eb7bfa463728f398a":[1,0,0,39], -"namespacepcs.html#ab823c7be920affd05f96a6ad8b99accf":[1,0,0,47], -"namespacepcs.html#abfda7874fe5b1f72c1c5a9a04d5c7e42":[1,0,0,21], -"namespacepcs.html#ac25d471fa1d838401335776ad4b6ead1":[1,0,0,38], -"namespacepcs.html#ac6e0b881e35c04e9b5bbe6e8b17ee1a7":[1,0,0,42], -"namespacepcs.html#ac7822fd0c570f69d597936a24c38ba2a":[1,0,0,13], -"namespacepcs.html#acab7e7bb1ffd6e4ea1a8300b05478647":[1,0,0,27], -"namespacepcs.html#acb7395de8ef88696d0c8c9772e172118":[1,0,0,41], -"namespacepcs.html#ad1d1b13c16ce784055e93af9fa34fb5c":[1,0,0,24], -"namespacepcs.html#ade5b26313fc856bb882109d6945629b8":[1,0,0,11], -"namespacepcs.html#aedd570e9ffa0572d56fce5085594bdbb":[1,0,0,22], -"namespacepcs.html#aef0240331a343bb1ad13eb613ca93fa4":[1,0,0,20], -"namespacepcs.html#af089ceadbeaab27e12ad7f7edaaec72a":[1,0,0,34], -"namespacepcs.html#af1b60c1081e8bc3b4cd91fbe240e9b87":[1,0,0,25], -"namespacepcs.html#af7c58514e3378a219904f22eb22e9072":[1,0,0,18], -"namespacepcs.html#afb8dd890fe893aba3264ac7df4fe7124":[1,0,0,40], -"namespaces.html":[1,0], -"pages.html":[], -"structpcs_1_1_start_slice.html":[1,0,0,2], -"structpcs_1_1_start_slice.html":[2,0,0,2], -"structpcs_1_1_start_slice.html#a6f792a61218b7598f8f6bb37dcdae56e":[1,0,0,2,1], -"structpcs_1_1_start_slice.html#a6f792a61218b7598f8f6bb37dcdae56e":[2,0,0,2,1], -"structpcs_1_1_start_slice.html#ae435a090e0d93fe221cab4822e352886":[1,0,0,2,0], -"structpcs_1_1_start_slice.html#ae435a090e0d93fe221cab4822e352886":[2,0,0,2,0], -"structpcs_1_1_start_step_slice.html":[1,0,0,3], -"structpcs_1_1_start_step_slice.html":[2,0,0,3], -"structpcs_1_1_start_step_slice.html#a438eef8b248cc00ed48afda08aff6d4c":[1,0,0,3,0], -"structpcs_1_1_start_step_slice.html#a438eef8b248cc00ed48afda08aff6d4c":[2,0,0,3,0], -"structpcs_1_1_start_step_slice.html#adc0aae8a3849379742e23c4f3a3197a9":[1,0,0,3,1], -"structpcs_1_1_start_step_slice.html#adc0aae8a3849379742e23c4f3a3197a9":[2,0,0,3,1], -"structpcs_1_1_start_stop_slice.html":[1,0,0,4], -"structpcs_1_1_start_stop_slice.html":[2,0,0,4], -"structpcs_1_1_start_stop_slice.html#a7c8ad9cb9d63fb9d56b3dbc9647297b4":[1,0,0,4,0], -"structpcs_1_1_start_stop_slice.html#a7c8ad9cb9d63fb9d56b3dbc9647297b4":[2,0,0,4,0], -"structpcs_1_1_start_stop_slice.html#a95df964c79860a475a63da3e56301ea7":[1,0,0,4,1], -"structpcs_1_1_start_stop_slice.html#a95df964c79860a475a63da3e56301ea7":[2,0,0,4,1], -"structpcs_1_1_step_slice.html":[1,0,0,5], -"structpcs_1_1_step_slice.html":[2,0,0,5], -"structpcs_1_1_step_slice.html#a93892e4d8f153a06a65e0cd13ebfa949":[1,0,0,5,1], -"structpcs_1_1_step_slice.html#a93892e4d8f153a06a65e0cd13ebfa949":[2,0,0,5,1], -"structpcs_1_1_step_slice.html#ad24accb58329f71457fbaf00fbbbf874":[1,0,0,5,0], -"structpcs_1_1_step_slice.html#ad24accb58329f71457fbaf00fbbbf874":[2,0,0,5,0], -"structpcs_1_1_stop_slice.html":[1,0,0,6], -"structpcs_1_1_stop_slice.html":[2,0,0,6], -"structpcs_1_1_stop_slice.html#a6e7e761a846ec00b1f24be9f83830f25":[1,0,0,6,1], -"structpcs_1_1_stop_slice.html#a6e7e761a846ec00b1f24be9f83830f25":[2,0,0,6,1], -"structpcs_1_1_stop_slice.html#a9d59c11b1bc398b71abc59b4071da379":[1,0,0,6,0], -"structpcs_1_1_stop_slice.html#a9d59c11b1bc398b71abc59b4071da379":[2,0,0,6,0], -"structpcs_1_1_stop_step_slice.html":[1,0,0,7], -"structpcs_1_1_stop_step_slice.html":[2,0,0,7], -"structpcs_1_1_stop_step_slice.html#a86288ad6b535b8b4d522e8173511c639":[1,0,0,7,0], -"structpcs_1_1_stop_step_slice.html#a86288ad6b535b8b4d522e8173511c639":[2,0,0,7,0], -"structpcs_1_1_stop_step_slice.html#aa62d3d31f646766a6ea2ef3cd9f91491":[1,0,0,7,1], -"structpcs_1_1_stop_step_slice.html#aa62d3d31f646766a6ea2ef3cd9f91491":[2,0,0,7,1] -}; diff --git a/cpp-strings/html/search/all_0.js b/cpp-strings/html/search/all_0.js deleted file mode 100644 index 7610c45..0000000 --- a/cpp-strings/html/search/all_0.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['0_0',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]], - ['0_200_20229_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['0_201_200_200_20229_202025_2007_2',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['0_20229_202025_2007_3',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['07_4',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]] -]; diff --git a/cpp-strings/html/search/all_1.js b/cpp-strings/html/search/all_1.js deleted file mode 100644 index e34236a..0000000 --- a/cpp-strings/html/search/all_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['1_200_0',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]], - ['1_200_200_20229_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['1_200_201_200_200_20229_202025_2007_2',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]] -]; diff --git a/cpp-strings/html/search/all_10.js b/cpp-strings/html/search/all_10.js deleted file mode 100644 index 3a8b493..0000000 --- a/cpp-strings/html/search/all_10.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['partition_0',['partition',['../classpcs_1_1_cpp_string_t.html#ac5f88b0fc1f33cda23c30cb1f3bc560f',1,'pcs::CppStringT']]], - ['parts_20in_20release_201_200_1',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]], - ['pcs_2',['pcs',['../namespacepcs.html',1,'']]], - ['python_20strings_3',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]] -]; diff --git a/cpp-strings/html/search/all_15.js b/cpp-strings/html/search/all_15.js deleted file mode 100644 index a833894..0000000 --- a/cpp-strings/html/search/all_15.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['what_20if_20c_20strings_20where_20as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]], - ['where_20as_20easy_20to_20use_20as_20python_20strings_1',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]] -]; diff --git a/cpp-strings/html/search/all_2.js b/cpp-strings/html/search/all_2.js deleted file mode 100644 index 48bd79f..0000000 --- a/cpp-strings/html/search/all_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['2025_2007_0',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['229_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]] -]; diff --git a/cpp-strings/html/search/all_3.js b/cpp-strings/html/search/all_3.js deleted file mode 100644 index 10a6632..0000000 --- a/cpp-strings/html/search/all_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]], - ['as_20python_20strings_1',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]] -]; diff --git a/cpp-strings/html/search/all_5.js b/cpp-strings/html/search/all_5.js deleted file mode 100644 index 89e53e5..0000000 --- a/cpp-strings/html/search/all_5.js +++ /dev/null @@ -1,16 +0,0 @@ -var searchData= -[ - ['c_20strings_20where_20as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]], - ['capitalize_1',['capitalize',['../classpcs_1_1_cpp_string_t.html#a48a00cca031b9c29d1912508e120a5f6',1,'pcs::CppStringT']]], - ['center_2',['center',['../classpcs_1_1_cpp_string_t.html#af18311d8608e71627bc85f96581e4dd3',1,'pcs::CppStringT']]], - ['contains_3',['contains',['../classpcs_1_1_cpp_string_t.html#a0674e29327353aabf83d0e207fed31ed',1,'pcs::CppStringT']]], - ['contains_5fn_4',['contains_n',['../classpcs_1_1_cpp_string_t.html#a031b05f290f589b2df52bb84252c27c7',1,'pcs::CppStringT']]], - ['count_5',['count',['../classpcs_1_1_cpp_string_t.html#a7beda74b4d5092845a970d51d01fe4bf',1,'pcs::CppStringT']]], - ['count_5fn_6',['count_n',['../classpcs_1_1_cpp_string_t.html#a76f97d56e1713182d5e85d58cd445d10',1,'pcs::CppStringT::count_n(const CppStringT &sub, const size_type start, const size_type length) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a59839e3b5a186c2554224dbf4528c1b4',1,'pcs::CppStringT::count_n(const CppStringT &sub, const size_type length) const noexcept']]], - ['cpp_20strings_7',['Library cpp-strings',['../index.html',1,'']]], - ['cppstring_8',['CppString',['../namespacepcs.html#a08d21c458d61442667df24212920d0d9',1,'pcs']]], - ['cppstringt_9',['CppStringT',['../classpcs_1_1_cpp_string_t.html',1,'pcs']]], - ['cppstringt_3c_20char_20_3e_10',['CppStringT< char >',['../classpcs_1_1_cpp_string_t.html',1,'pcs']]], - ['cppstringt_3c_20wchar_5ft_20_3e_11',['CppStringT< wchar_t >',['../classpcs_1_1_cpp_string_t.html',1,'pcs']]], - ['cppwstring_12',['CppWString',['../namespacepcs.html#a79a822cea8e301fd51d2ed51dff57286',1,'pcs']]] -]; diff --git a/cpp-strings/html/search/all_6.js b/cpp-strings/html/search/all_6.js deleted file mode 100644 index 534d42d..0000000 --- a/cpp-strings/html/search/all_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['documentation_0',['Documentation',['../index.html#autotoc_md9',1,'']]] -]; diff --git a/cpp-strings/html/search/all_a.js b/cpp-strings/html/search/all_a.js deleted file mode 100644 index 47a186c..0000000 --- a/cpp-strings/html/search/all_a.js +++ /dev/null @@ -1,52 +0,0 @@ -var searchData= -[ - ['if_20c_20strings_20where_20as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]], - ['in_20release_201_200_1',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]], - ['index_2',['index',['../classpcs_1_1_cpp_string_t.html#a277a2b8a3b93951ccb94b6bf39daa582',1,'pcs::CppStringT']]], - ['index_5fn_3',['index_n',['../classpcs_1_1_cpp_string_t.html#aee94d4b52483021051b168e776b18569',1,'pcs::CppStringT::index_n(const CppStringT &sub, const size_type start, const size_type count) const'],['../classpcs_1_1_cpp_string_t.html#a19a51054b824add817f30c5ff03effe7',1,'pcs::CppStringT::index_n(const CppStringT &sub, const size_type count) const']]], - ['intro_4',['Intro',['../index.html#autotoc_md4',1,'']]], - ['is_5falpha_5',['is_alpha',['../namespacepcs.html#a40bc3d234e3c737f34d267151ca62014',1,'pcs']]], - ['is_5falpha_3c_20char_20_3e_6',['is_alpha< char >',['../namespacepcs.html#ade5b26313fc856bb882109d6945629b8',1,'pcs']]], - ['is_5falpha_3c_20wchar_5ft_20_3e_7',['is_alpha< wchar_t >',['../namespacepcs.html#a069625790af3ecf05a424c2c53eabfc0',1,'pcs']]], - ['is_5fascii_8',['is_ascii',['../namespacepcs.html#ac7822fd0c570f69d597936a24c38ba2a',1,'pcs']]], - ['is_5fdecimal_9',['is_decimal',['../namespacepcs.html#a9f0ba4e85fc273fad1a8b489f3be7fa8',1,'pcs']]], - ['is_5fdecimal_3c_20char_20_3e_10',['is_decimal< char >',['../namespacepcs.html#a28f77929d599a862403a4471f6b73fc3',1,'pcs']]], - ['is_5fdecimal_3c_20wchar_5ft_20_3e_11',['is_decimal< wchar_t >',['../namespacepcs.html#a60a2017b25d3d06b83e72f5ed5a93d09',1,'pcs']]], - ['is_5fdigit_12',['is_digit',['../namespacepcs.html#a52b12f8beb4ab7d8b819ca24180e08d1',1,'pcs']]], - ['is_5fdigit_3c_20char_20_3e_13',['is_digit< char >',['../namespacepcs.html#af7c58514e3378a219904f22eb22e9072',1,'pcs']]], - ['is_5fdigit_3c_20wchar_5ft_20_3e_14',['is_digit< wchar_t >',['../namespacepcs.html#a01c6093b1a8ef52114f799635ff930d5',1,'pcs']]], - ['is_5fid_5fcontinue_15',['is_id_continue',['../namespacepcs.html#aef0240331a343bb1ad13eb613ca93fa4',1,'pcs']]], - ['is_5fid_5fstart_16',['is_id_start',['../namespacepcs.html#abfda7874fe5b1f72c1c5a9a04d5c7e42',1,'pcs']]], - ['is_5flower_17',['is_lower',['../namespacepcs.html#aedd570e9ffa0572d56fce5085594bdbb',1,'pcs']]], - ['is_5flower_3c_20char_20_3e_18',['is_lower< char >',['../namespacepcs.html#a29893984c95e53a6efe01f74c2dcc03a',1,'pcs']]], - ['is_5flower_3c_20wchar_5ft_20_3e_19',['is_lower< wchar_t >',['../namespacepcs.html#ad1d1b13c16ce784055e93af9fa34fb5c',1,'pcs']]], - ['is_5fnumeric_20',['is_numeric',['../namespacepcs.html#af1b60c1081e8bc3b4cd91fbe240e9b87',1,'pcs']]], - ['is_5fnumeric_3c_20char_20_3e_21',['is_numeric< char >',['../namespacepcs.html#a242e3c28e3d47d19d70ab70d83e74d35',1,'pcs']]], - ['is_5fnumeric_3c_20wchar_5ft_20_3e_22',['is_numeric< wchar_t >',['../namespacepcs.html#acab7e7bb1ffd6e4ea1a8300b05478647',1,'pcs']]], - ['is_5fprintable_23',['is_printable',['../namespacepcs.html#a51cd6883557ab31a1e0c8e7b5ab27351',1,'pcs']]], - ['is_5fprintable_3c_20char_20_3e_24',['is_printable< char >',['../namespacepcs.html#a1cd19ec212e3ada992a8effb8d5d872d',1,'pcs']]], - ['is_5fprintable_3c_20wchar_5ft_20_3e_25',['is_printable< wchar_t >',['../namespacepcs.html#a30ed0cd7942d081369f78a49a029d8b1',1,'pcs']]], - ['is_5fpunctuation_26',['is_punctuation',['../namespacepcs.html#a02d340dd9c510eda0fbfed07a08d0792',1,'pcs']]], - ['is_5fpunctuation_3c_20char_20_3e_27',['is_punctuation< char >',['../namespacepcs.html#aa36d34c2227cde5856e8d61fa6e4af58',1,'pcs']]], - ['is_5fpunctuation_3c_20wchar_5ft_20_3e_28',['is_punctuation< wchar_t >',['../namespacepcs.html#a363e2bac9c403a623c5a410f7113edd3',1,'pcs']]], - ['is_5fspace_29',['is_space',['../namespacepcs.html#af089ceadbeaab27e12ad7f7edaaec72a',1,'pcs']]], - ['is_5fspace_3c_20char_20_3e_30',['is_space< char >',['../namespacepcs.html#a714cfa835ef4db5180309829ee8e27a9',1,'pcs']]], - ['is_5fspace_3c_20wchar_5ft_20_3e_31',['is_space< wchar_t >',['../namespacepcs.html#a57a765c6eb624107a2176a56cf2220a7',1,'pcs']]], - ['is_5fupper_32',['is_upper',['../namespacepcs.html#a8cb1cd0a1e39d92893eb7d22145f5d65',1,'pcs']]], - ['is_5fupper_3c_20char_20_3e_33',['is_upper< char >',['../namespacepcs.html#ac25d471fa1d838401335776ad4b6ead1',1,'pcs']]], - ['is_5fupper_3c_20wchar_5ft_20_3e_34',['is_upper< wchar_t >',['../namespacepcs.html#ab5077443809e9e4eb7bfa463728f398a',1,'pcs']]], - ['is_5fwords_5fsep_35',['is_words_sep',['../classpcs_1_1_cpp_string_t.html#a7565e4f2958e485ee2b0815be1faa0fa',1,'pcs::CppStringT']]], - ['isalnum_36',['isalnum',['../classpcs_1_1_cpp_string_t.html#a8fdf96ffee524d5b795c4aad26ece6ae',1,'pcs::CppStringT']]], - ['isalpha_37',['isalpha',['../classpcs_1_1_cpp_string_t.html#a447b7c58b4be1cdcba3aedf189acbce7',1,'pcs::CppStringT']]], - ['isascii_38',['isascii',['../classpcs_1_1_cpp_string_t.html#a710631f31d4c63c2117e8f4804fad3f2',1,'pcs::CppStringT']]], - ['isdecimal_39',['isdecimal',['../classpcs_1_1_cpp_string_t.html#a0b9d8a55419274e7cfd9badb4df704e3',1,'pcs::CppStringT']]], - ['isdigit_40',['isdigit',['../classpcs_1_1_cpp_string_t.html#a21316d00180377a3f48910a6c4c43b9c',1,'pcs::CppStringT']]], - ['isidentifier_41',['isidentifier',['../classpcs_1_1_cpp_string_t.html#a91f72d425dbb4c53a066338d30683246',1,'pcs::CppStringT']]], - ['islower_42',['islower',['../classpcs_1_1_cpp_string_t.html#ae4ff448bb92e6499c0a76f7d8e11126c',1,'pcs::CppStringT']]], - ['isnumeric_43',['isnumeric',['../classpcs_1_1_cpp_string_t.html#a578176ed20fd8da965afbcae1d99dd59',1,'pcs::CppStringT']]], - ['isprintable_44',['isprintable',['../classpcs_1_1_cpp_string_t.html#a6257a1832da550d4be32e9f272e51265',1,'pcs::CppStringT']]], - ['ispunctuation_45',['ispunctuation',['../classpcs_1_1_cpp_string_t.html#a2842f3a067fdc674709bed048d64e12d',1,'pcs::CppStringT']]], - ['isspace_46',['isspace',['../classpcs_1_1_cpp_string_t.html#a959a8f56bb536f2474ffc649a7ad3290',1,'pcs::CppStringT']]], - ['istitle_47',['istitle',['../classpcs_1_1_cpp_string_t.html#ad72611f339c2b9027a72fa26f25748c3',1,'pcs::CppStringT']]], - ['isupper_48',['isupper',['../classpcs_1_1_cpp_string_t.html#af2784cbe9655bb8e23fe90375d79e69c',1,'pcs::CppStringT']]] -]; diff --git a/cpp-strings/html/search/all_d.js b/cpp-strings/html/search/all_d.js deleted file mode 100644 index 87ae8b8..0000000 --- a/cpp-strings/html/search/all_d.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['missing_20parts_20in_20release_201_200_0',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_0.js b/cpp-strings/html/search/pages_0.js deleted file mode 100644 index 7610c45..0000000 --- a/cpp-strings/html/search/pages_0.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['0_0',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]], - ['0_200_20229_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['0_201_200_200_20229_202025_2007_2',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['0_20229_202025_2007_3',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['07_4',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_1.js b/cpp-strings/html/search/pages_1.js deleted file mode 100644 index e34236a..0000000 --- a/cpp-strings/html/search/pages_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['1_200_0',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]], - ['1_200_200_20229_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['1_200_201_200_200_20229_202025_2007_2',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_2.js b/cpp-strings/html/search/pages_2.js deleted file mode 100644 index 48bd79f..0000000 --- a/cpp-strings/html/search/pages_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['2025_2007_0',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['229_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_3.js b/cpp-strings/html/search/pages_3.js deleted file mode 100644 index 10a6632..0000000 --- a/cpp-strings/html/search/pages_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]], - ['as_20python_20strings_1',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_4.js b/cpp-strings/html/search/pages_4.js deleted file mode 100644 index 8c2e7e6..0000000 --- a/cpp-strings/html/search/pages_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['c_20strings_20where_20as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]], - ['cpp_20strings_1',['Library cpp-strings',['../index.html',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_5.js b/cpp-strings/html/search/pages_5.js deleted file mode 100644 index 534d42d..0000000 --- a/cpp-strings/html/search/pages_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['documentation_0',['Documentation',['../index.html#autotoc_md9',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_6.js b/cpp-strings/html/search/pages_6.js deleted file mode 100644 index 8ecbd2d..0000000 --- a/cpp-strings/html/search/pages_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['easy_20to_20use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_7.js b/cpp-strings/html/search/pages_7.js deleted file mode 100644 index bf51d68..0000000 --- a/cpp-strings/html/search/pages_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['if_20c_20strings_20where_20as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]], - ['in_20release_201_200_1',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]], - ['intro_2',['Intro',['../index.html#autotoc_md4',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_8.js b/cpp-strings/html/search/pages_8.js deleted file mode 100644 index 767d0b6..0000000 --- a/cpp-strings/html/search/pages_8.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['latest_20release_20release_201_200_201_200_200_20229_202025_2007_0',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['library_20cpp_20strings_1',['Library cpp-strings',['../index.html',1,'']]], - ['license_2',['License',['../index.html#autotoc_md3',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_9.js b/cpp-strings/html/search/pages_9.js deleted file mode 100644 index 87ae8b8..0000000 --- a/cpp-strings/html/search/pages_9.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['missing_20parts_20in_20release_201_200_0',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_a.js b/cpp-strings/html/search/pages_a.js deleted file mode 100644 index 9f2f1fe..0000000 --- a/cpp-strings/html/search/pages_a.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['parts_20in_20release_201_200_0',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]], - ['python_20strings_1',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_b.js b/cpp-strings/html/search/pages_b.js deleted file mode 100644 index 1768d4f..0000000 --- a/cpp-strings/html/search/pages_b.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['release_201_200_0',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]], - ['release_201_200_201_200_200_20229_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['release_20release_201_200_201_200_200_20229_202025_2007_2',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_c.js b/cpp-strings/html/search/pages_c.js deleted file mode 100644 index 95cc349..0000000 --- a/cpp-strings/html/search/pages_c.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['strings_0',['strings',['../index.html',1,'Library cpp-strings'],['../index.html#autotoc_md1',1,'What if c++ strings where as easy to use as Python strings?']]], - ['strings_20where_20as_20easy_20to_20use_20as_20python_20strings_1',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_d.js b/cpp-strings/html/search/pages_d.js deleted file mode 100644 index 4f92957..0000000 --- a/cpp-strings/html/search/pages_d.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['to_20use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_e.js b/cpp-strings/html/search/pages_e.js deleted file mode 100644 index 4c7a727..0000000 --- a/cpp-strings/html/search/pages_e.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]] -]; diff --git a/cpp-strings/html/search/pages_f.js b/cpp-strings/html/search/pages_f.js deleted file mode 100644 index a833894..0000000 --- a/cpp-strings/html/search/pages_f.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['what_20if_20c_20strings_20where_20as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]], - ['where_20as_20easy_20to_20use_20as_20python_20strings_1',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]] -]; diff --git a/cpp-strings/html/annotated.html b/documentation/annotated.html similarity index 99% rename from cpp-strings/html/annotated.html rename to documentation/annotated.html index cccc0e4..9b9a678 100644 --- a/cpp-strings/html/annotated.html +++ b/documentation/annotated.html @@ -26,7 +26,7 @@ -
cpp-strings 1.0.0 +
cpp-strings 1.0.4
Pythonic c++ strings
diff --git a/cpp-strings/html/annotated_dup.js b/documentation/annotated_dup.js similarity index 100% rename from cpp-strings/html/annotated_dup.js rename to documentation/annotated_dup.js diff --git a/cpp-strings/html/classes.html b/documentation/classes.html similarity index 99% rename from cpp-strings/html/classes.html rename to documentation/classes.html index cac03fe..b5312f5 100644 --- a/cpp-strings/html/classes.html +++ b/documentation/classes.html @@ -26,7 +26,7 @@ -
cpp-strings 1.0.0 +
cpp-strings 1.0.4
Pythonic c++ strings
diff --git a/cpp-strings/html/classpcs_1_1_cpp_string_t-members.html b/documentation/classpcs_1_1_cpp_string_t-members.html similarity index 99% rename from cpp-strings/html/classpcs_1_1_cpp_string_t-members.html rename to documentation/classpcs_1_1_cpp_string_t-members.html index 184420d..9ce290e 100644 --- a/cpp-strings/html/classpcs_1_1_cpp_string_t-members.html +++ b/documentation/classpcs_1_1_cpp_string_t-members.html @@ -26,7 +26,7 @@ -
cpp-strings 1.0.0 +
cpp-strings 1.0.4
Pythonic c++ strings
diff --git a/cpp-strings/html/classpcs_1_1_cpp_string_t.html b/documentation/classpcs_1_1_cpp_string_t.html similarity index 99% rename from cpp-strings/html/classpcs_1_1_cpp_string_t.html rename to documentation/classpcs_1_1_cpp_string_t.html index b8ec5fe..9842fe3 100644 --- a/cpp-strings/html/classpcs_1_1_cpp_string_t.html +++ b/documentation/classpcs_1_1_cpp_string_t.html @@ -26,7 +26,7 @@ -
cpp-strings 1.0.0 +
cpp-strings 1.0.4
Pythonic c++ strings
@@ -93,7 +93,7 @@

This is the templated base class for all CppString classes. More...

-

#include <cppstrings.h>

+

#include <cppstrings.h>

Inheritance diagram for pcs::CppStringT< CharT, TraitsT, AllocatorT >:
@@ -1421,7 +1421,7 @@

Returns true if all characters in the string are decimal characters and there is at least one character, or false otherwise.

-

Decimal characters are those that can be used to form numbers in base 10, e.g. U+0660, ARABIC-INDIC DIGIT ZERO. Formally a decimal character is a character in the Unicode General Category “Nd”.

+

Decimal characters are those that can be used to form numbers in base 10, e.g. U+0660, ARABIC-INDIC DIGIT ZERO. Formally a decimal character is a character in the Unicode General Category �Nd�.

Referenced by pcs::CppStringT< char >::isdigit(), and pcs::CppStringT< char >::isnumeric().

@@ -1488,7 +1488,7 @@

https://www.unicode.org/reports/tr31/#NFKC_Modifications)> ID_Continue ::= ID_Start | <characters having the Unicode General_Category of nonspacing marks, spacing combining marks, decimal number, connector punctuation, plus Other_ID_Continue, minus Pattern_Syntax and Pattern_White_Space code points>

the currently implemented rule is this simpler one:

-

identifier ::= ID_Start id_continue* id_continue ::= ID_Start | <decimal number>

+

identifier ::= ID_Start id_continue* id_continue ::= ID_Start | decimal_number

@@ -3089,9 +3089,9 @@

splitlines(), are currently NOT detected by CppStrings \x85 Next Line (C1 Control Code) \u2028 Line Separator \u2029 Paragraph Separator

+

This method splits on the following line boundaries. In particular, the boundaries are a superset of universal newlines: '
+' Line Feed '\r' Carriage Return '\r
+' Carriage Return + Line Feed '\v' or '\x0b' Line Tabulation '\f' or '\x0c' Form Feed '\x1c' File Separator '\x1d' Group Separator '\x1e' Record Separator Next separators values, detected by Python method splitlines(), are currently NOT detected by CppStrings '\x85' Next Line (C1 Control Code) '\u2028' Line Separator '\u2029' Paragraph Separator

@@ -3622,7 +3622,7 @@

cppstrings.h +
  • cppstrings.h
  • diff --git a/cpp-strings/html/classpcs_1_1_cpp_string_t.js b/documentation/classpcs_1_1_cpp_string_t.js similarity index 100% rename from cpp-strings/html/classpcs_1_1_cpp_string_t.js rename to documentation/classpcs_1_1_cpp_string_t.js diff --git a/cpp-strings/html/classpcs_1_1_cpp_string_t.png b/documentation/classpcs_1_1_cpp_string_t.png similarity index 100% rename from cpp-strings/html/classpcs_1_1_cpp_string_t.png rename to documentation/classpcs_1_1_cpp_string_t.png diff --git a/cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_not_found_exception-members.html b/documentation/classpcs_1_1_cpp_string_t_1_1_not_found_exception-members.html similarity index 99% rename from cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_not_found_exception-members.html rename to documentation/classpcs_1_1_cpp_string_t_1_1_not_found_exception-members.html index 96404b2..baeae4b 100644 --- a/cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_not_found_exception-members.html +++ b/documentation/classpcs_1_1_cpp_string_t_1_1_not_found_exception-members.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_not_found_exception.html b/documentation/classpcs_1_1_cpp_string_t_1_1_not_found_exception.html similarity index 98% rename from cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_not_found_exception.html rename to documentation/classpcs_1_1_cpp_string_t_1_1_not_found_exception.html index a96dad0..f2f0949 100644 --- a/cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_not_found_exception.html +++ b/documentation/classpcs_1_1_cpp_string_t_1_1_not_found_exception.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    @@ -109,7 +109,7 @@  NotFoundException (const std::string &what_arg)
    The documentation for this class was generated from the following file:
    diff --git a/cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_not_found_exception.png b/documentation/classpcs_1_1_cpp_string_t_1_1_not_found_exception.png similarity index 100% rename from cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_not_found_exception.png rename to documentation/classpcs_1_1_cpp_string_t_1_1_not_found_exception.png diff --git a/cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_trans_table-members.html b/documentation/classpcs_1_1_cpp_string_t_1_1_trans_table-members.html similarity index 99% rename from cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_trans_table-members.html rename to documentation/classpcs_1_1_cpp_string_t_1_1_trans_table-members.html index 19c9850..c7461ac 100644 --- a/cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_trans_table-members.html +++ b/documentation/classpcs_1_1_cpp_string_t_1_1_trans_table-members.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_trans_table.html b/documentation/classpcs_1_1_cpp_string_t_1_1_trans_table.html similarity index 99% rename from cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_trans_table.html rename to documentation/classpcs_1_1_cpp_string_t_1_1_trans_table.html index b013f68..8fb7d87 100644 --- a/cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_trans_table.html +++ b/documentation/classpcs_1_1_cpp_string_t_1_1_trans_table.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    @@ -93,7 +93,7 @@

    The internal class of translation tables, used with methods CppStringT::maketrans and CppStringT::translate. More...

    -

    #include <cppstrings.h>

    +

    #include <cppstrings.h>

    @@ -813,7 +813,7 @@

    cppstrings.h +
  • cppstrings.h
  • diff --git a/cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_trans_table.js b/documentation/classpcs_1_1_cpp_string_t_1_1_trans_table.js similarity index 100% rename from cpp-strings/html/classpcs_1_1_cpp_string_t_1_1_trans_table.js rename to documentation/classpcs_1_1_cpp_string_t_1_1_trans_table.js diff --git a/cpp-strings/html/classpcs_1_1_slice-members.html b/documentation/classpcs_1_1_slice-members.html similarity index 99% rename from cpp-strings/html/classpcs_1_1_slice-members.html rename to documentation/classpcs_1_1_slice-members.html index b6e1a5f..3ec7eae 100644 --- a/cpp-strings/html/classpcs_1_1_slice-members.html +++ b/documentation/classpcs_1_1_slice-members.html @@ -26,7 +26,7 @@

    diff --git a/cpp-strings/html/classpcs_1_1_slice.html b/documentation/classpcs_1_1_slice.html similarity index 99% rename from cpp-strings/html/classpcs_1_1_slice.html rename to documentation/classpcs_1_1_slice.html index 3bbc794..5f6b5e7 100644 --- a/cpp-strings/html/classpcs_1_1_slice.html +++ b/documentation/classpcs_1_1_slice.html @@ -26,7 +26,7 @@ @@ -93,7 +93,7 @@

    Base class for slices, with start, stop and step specified values. More...

    -

    #include <cppstrings.h>

    +

    #include <cppstrings.h>

    Inheritance diagram for pcs::Slice< IntT >:
    @@ -462,7 +462,7 @@

    cppstrings.h +
  • cppstrings.h
  • diff --git a/cpp-strings/html/classpcs_1_1_slice.js b/documentation/classpcs_1_1_slice.js similarity index 100% rename from cpp-strings/html/classpcs_1_1_slice.js rename to documentation/classpcs_1_1_slice.js diff --git a/cpp-strings/html/classpcs_1_1_slice.png b/documentation/classpcs_1_1_slice.png similarity index 100% rename from cpp-strings/html/classpcs_1_1_slice.png rename to documentation/classpcs_1_1_slice.png diff --git a/cpp-strings/html/clipboard.js b/documentation/clipboard.js similarity index 100% rename from cpp-strings/html/clipboard.js rename to documentation/clipboard.js diff --git a/cpp-strings/html/cookie.js b/documentation/cookie.js similarity index 100% rename from cpp-strings/html/cookie.js rename to documentation/cookie.js diff --git a/cpp-strings/html/files.html b/documentation/dir_04560ed86add89973319438dcdff07f6.html similarity index 85% rename from cpp-strings/html/files.html rename to documentation/dir_04560ed86add89973319438dcdff07f6.html index c18cd38..499a1c7 100644 --- a/cpp-strings/html/files.html +++ b/documentation/dir_04560ed86add89973319438dcdff07f6.html @@ -5,7 +5,7 @@ -cpp-strings: File List +cpp-strings: cpp-strings Directory Reference @@ -26,7 +26,7 @@ @@ -60,7 +60,7 @@
    @@ -86,20 +86,23 @@
    -
    File List
    +
    cpp-strings Directory Reference
    -
    Here is a list of all documented files with brief descriptions:
    -

    Public Types

    -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    - -
     
    cppstrings.h
    -
    + diff --git a/cpp-strings/html/doxygen.css b/documentation/doxygen.css similarity index 99% rename from cpp-strings/html/doxygen.css rename to documentation/doxygen.css index 96ed5da..11fe334 100644 --- a/cpp-strings/html/doxygen.css +++ b/documentation/doxygen.css @@ -2442,7 +2442,7 @@ details[open]>summary::before { html { ---timestamp: 'Thu Jul 17 2025' +--timestamp: 'Tue Oct 21 2025' } span.timestamp { content: ' '; } span.timestamp:before { content: var(--timestamp); } diff --git a/cpp-strings/html/doxygen.svg b/documentation/doxygen.svg similarity index 100% rename from cpp-strings/html/doxygen.svg rename to documentation/doxygen.svg diff --git a/cpp-strings/html/doxygen_crawl.html b/documentation/doxygen_crawl.html similarity index 98% rename from cpp-strings/html/doxygen_crawl.html rename to documentation/doxygen_crawl.html index a13fd7d..b3bf7fc 100644 --- a/cpp-strings/html/doxygen_crawl.html +++ b/documentation/doxygen_crawl.html @@ -143,19 +143,12 @@ - + - - - - - - - diff --git a/cpp-strings/html/dynsections.js b/documentation/dynsections.js similarity index 100% rename from cpp-strings/html/dynsections.js rename to documentation/dynsections.js diff --git a/cpp-strings/html/functions.html b/documentation/functions.html similarity index 99% rename from cpp-strings/html/functions.html rename to documentation/functions.html index e99d012..e84db14 100644 --- a/cpp-strings/html/functions.html +++ b/documentation/functions.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/functions_func.html b/documentation/functions_func.html similarity index 99% rename from cpp-strings/html/functions_func.html rename to documentation/functions_func.html index ebc9f5d..bec5f4e 100644 --- a/cpp-strings/html/functions_func.html +++ b/documentation/functions_func.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/hierarchy.html b/documentation/hierarchy.html similarity index 99% rename from cpp-strings/html/hierarchy.html rename to documentation/hierarchy.html index 07a5967..fc6a8d7 100644 --- a/cpp-strings/html/hierarchy.html +++ b/documentation/hierarchy.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/hierarchy.js b/documentation/hierarchy.js similarity index 100% rename from cpp-strings/html/hierarchy.js rename to documentation/hierarchy.js diff --git a/documentation/index.html b/documentation/index.html new file mode 100644 index 0000000..77773cd --- /dev/null +++ b/documentation/index.html @@ -0,0 +1,103 @@ + + + + + + + +cpp-strings: Main Page + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    cpp-strings 1.0.4 +
    +
    Pythonic c++ strings
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + + + + diff --git a/cpp-strings/html/jquery.js b/documentation/jquery.js similarity index 100% rename from cpp-strings/html/jquery.js rename to documentation/jquery.js diff --git a/cpp-strings/html/menu.js b/documentation/menu.js similarity index 100% rename from cpp-strings/html/menu.js rename to documentation/menu.js diff --git a/cpp-strings/html/menudata.js b/documentation/menudata.js similarity index 96% rename from cpp-strings/html/menudata.js rename to documentation/menudata.js index 2d950f2..1f41ba2 100644 --- a/cpp-strings/html/menudata.js +++ b/documentation/menudata.js @@ -77,6 +77,4 @@ var menudata={children:[ {text:"t",url:"functions_func.html#index_t"}, {text:"u",url:"functions_func.html#index_u"}, {text:"z",url:"functions_func.html#index_z"}, -{text:"~",url:"functions_func.html#index__7E"}]}]}]}, -{text:"Files",url:"files.html",children:[ -{text:"File List",url:"files.html"}]}]} +{text:"~",url:"functions_func.html#index__7E"}]}]}]}]} diff --git a/cpp-strings/html/namespacemembers.html b/documentation/namespacemembers.html similarity index 99% rename from cpp-strings/html/namespacemembers.html rename to documentation/namespacemembers.html index e29a627..bb12bb4 100644 --- a/cpp-strings/html/namespacemembers.html +++ b/documentation/namespacemembers.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/namespacemembers_func.html b/documentation/namespacemembers_func.html similarity index 99% rename from cpp-strings/html/namespacemembers_func.html rename to documentation/namespacemembers_func.html index 99524ea..af6e5ae 100644 --- a/cpp-strings/html/namespacemembers_func.html +++ b/documentation/namespacemembers_func.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/namespacemembers_type.html b/documentation/namespacemembers_type.html similarity index 99% rename from cpp-strings/html/namespacemembers_type.html rename to documentation/namespacemembers_type.html index d66a60f..6c18b1d 100644 --- a/cpp-strings/html/namespacemembers_type.html +++ b/documentation/namespacemembers_type.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/namespacepcs.html b/documentation/namespacepcs.html similarity index 99% rename from cpp-strings/html/namespacepcs.html rename to documentation/namespacepcs.html index c490840..7bcffed 100644 --- a/cpp-strings/html/namespacepcs.html +++ b/documentation/namespacepcs.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/namespacepcs.js b/documentation/namespacepcs.js similarity index 100% rename from cpp-strings/html/namespacepcs.js rename to documentation/namespacepcs.js diff --git a/cpp-strings/html/namespaces.html b/documentation/namespaces.html similarity index 99% rename from cpp-strings/html/namespaces.html rename to documentation/namespaces.html index 9d8281c..1a59ece 100644 --- a/cpp-strings/html/namespaces.html +++ b/documentation/namespaces.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/namespaces_dup.js b/documentation/namespaces_dup.js similarity index 100% rename from cpp-strings/html/namespaces_dup.js rename to documentation/namespaces_dup.js diff --git a/cpp-strings/html/navtree.css b/documentation/navtree.css similarity index 100% rename from cpp-strings/html/navtree.css rename to documentation/navtree.css diff --git a/cpp-strings/html/navtree.js b/documentation/navtree.js similarity index 100% rename from cpp-strings/html/navtree.js rename to documentation/navtree.js diff --git a/cpp-strings/html/navtreedata.js b/documentation/navtreedata.js similarity index 94% rename from cpp-strings/html/navtreedata.js rename to documentation/navtreedata.js index 81b2279..5a58e34 100644 --- a/cpp-strings/html/navtreedata.js +++ b/documentation/navtreedata.js @@ -25,7 +25,6 @@ var NAVTREE = [ [ "cpp-strings", "index.html", [ - [ "Library cpp-strings", "index.html", "index" ], [ "Namespaces", "namespaces.html", [ [ "Namespace List", "namespaces.html", "namespaces_dup" ], [ "Namespace Members", "namespacemembers.html", [ @@ -42,9 +41,6 @@ var NAVTREE = [ "All", "functions.html", null ], [ "Functions", "functions_func.html", null ] ] ] - ] ], - [ "Files", "files.html", [ - [ "File List", "files.html", "files_dup" ] ] ] ] ] ]; diff --git a/cpp-strings/html/navtreeindex0.js b/documentation/navtreeindex0.js similarity index 86% rename from cpp-strings/html/navtreeindex0.js rename to documentation/navtreeindex0.js index 2fa314a..8ef868c 100644 --- a/cpp-strings/html/navtreeindex0.js +++ b/documentation/navtreeindex0.js @@ -1,253 +1,253 @@ var NAVTREEINDEX0 = { -"annotated.html":[2,0], -"classes.html":[2,1], +"annotated.html":[1,0], +"classes.html":[1,1], +"classpcs_1_1_cpp_string_t.html":[0,0,0,0], "classpcs_1_1_cpp_string_t.html":[1,0,0,0], -"classpcs_1_1_cpp_string_t.html":[2,0,0,0], +"classpcs_1_1_cpp_string_t.html#a02919129cdf158e75eae1e9815a071bf":[0,0,0,0,89], "classpcs_1_1_cpp_string_t.html#a02919129cdf158e75eae1e9815a071bf":[1,0,0,0,89], -"classpcs_1_1_cpp_string_t.html#a02919129cdf158e75eae1e9815a071bf":[2,0,0,0,89], +"classpcs_1_1_cpp_string_t.html#a031b05f290f589b2df52bb84252c27c7":[0,0,0,0,5], "classpcs_1_1_cpp_string_t.html#a031b05f290f589b2df52bb84252c27c7":[1,0,0,0,5], -"classpcs_1_1_cpp_string_t.html#a031b05f290f589b2df52bb84252c27c7":[2,0,0,0,5], +"classpcs_1_1_cpp_string_t.html#a0419f46de6fa532372f3b97b4927ebab":[0,0,0,0,71], "classpcs_1_1_cpp_string_t.html#a0419f46de6fa532372f3b97b4927ebab":[1,0,0,0,71], -"classpcs_1_1_cpp_string_t.html#a0419f46de6fa532372f3b97b4927ebab":[2,0,0,0,71], +"classpcs_1_1_cpp_string_t.html#a058704b7f4538ec9e1798c5348d37c7a":[0,0,0,0,55], "classpcs_1_1_cpp_string_t.html#a058704b7f4538ec9e1798c5348d37c7a":[1,0,0,0,55], -"classpcs_1_1_cpp_string_t.html#a058704b7f4538ec9e1798c5348d37c7a":[2,0,0,0,55], +"classpcs_1_1_cpp_string_t.html#a0674e29327353aabf83d0e207fed31ed":[0,0,0,0,4], "classpcs_1_1_cpp_string_t.html#a0674e29327353aabf83d0e207fed31ed":[1,0,0,0,4], -"classpcs_1_1_cpp_string_t.html#a0674e29327353aabf83d0e207fed31ed":[2,0,0,0,4], +"classpcs_1_1_cpp_string_t.html#a0995f5b5a01af3f4a749949e23d0d780":[0,0,0,0,51], "classpcs_1_1_cpp_string_t.html#a0995f5b5a01af3f4a749949e23d0d780":[1,0,0,0,51], -"classpcs_1_1_cpp_string_t.html#a0995f5b5a01af3f4a749949e23d0d780":[2,0,0,0,51], +"classpcs_1_1_cpp_string_t.html#a0b9d8a55419274e7cfd9badb4df704e3":[0,0,0,0,30], "classpcs_1_1_cpp_string_t.html#a0b9d8a55419274e7cfd9badb4df704e3":[1,0,0,0,30], -"classpcs_1_1_cpp_string_t.html#a0b9d8a55419274e7cfd9badb4df704e3":[2,0,0,0,30], +"classpcs_1_1_cpp_string_t.html#a0bd53df14569c307b5ca50a2e1e62960":[0,0,0,0,80], "classpcs_1_1_cpp_string_t.html#a0bd53df14569c307b5ca50a2e1e62960":[1,0,0,0,80], -"classpcs_1_1_cpp_string_t.html#a0bd53df14569c307b5ca50a2e1e62960":[2,0,0,0,80], +"classpcs_1_1_cpp_string_t.html#a0daec57ccab4601f46e9d1c258407765":[0,0,0,0,49], "classpcs_1_1_cpp_string_t.html#a0daec57ccab4601f46e9d1c258407765":[1,0,0,0,49], -"classpcs_1_1_cpp_string_t.html#a0daec57ccab4601f46e9d1c258407765":[2,0,0,0,49], +"classpcs_1_1_cpp_string_t.html#a12bc043347f555b4701e0c70d972058d":[0,0,0,0,88], "classpcs_1_1_cpp_string_t.html#a12bc043347f555b4701e0c70d972058d":[1,0,0,0,88], -"classpcs_1_1_cpp_string_t.html#a12bc043347f555b4701e0c70d972058d":[2,0,0,0,88], +"classpcs_1_1_cpp_string_t.html#a179634aafb049e8604ca78f813684a28":[0,0,0,0,92], "classpcs_1_1_cpp_string_t.html#a179634aafb049e8604ca78f813684a28":[1,0,0,0,92], -"classpcs_1_1_cpp_string_t.html#a179634aafb049e8604ca78f813684a28":[2,0,0,0,92], +"classpcs_1_1_cpp_string_t.html#a19a51054b824add817f30c5ff03effe7":[0,0,0,0,24], "classpcs_1_1_cpp_string_t.html#a19a51054b824add817f30c5ff03effe7":[1,0,0,0,24], -"classpcs_1_1_cpp_string_t.html#a19a51054b824add817f30c5ff03effe7":[2,0,0,0,24], +"classpcs_1_1_cpp_string_t.html#a1a89389b38fd6af3ea8db3489dd82f70":[0,0,0,0,20], "classpcs_1_1_cpp_string_t.html#a1a89389b38fd6af3ea8db3489dd82f70":[1,0,0,0,20], -"classpcs_1_1_cpp_string_t.html#a1a89389b38fd6af3ea8db3489dd82f70":[2,0,0,0,20], +"classpcs_1_1_cpp_string_t.html#a1fa8862a5f306553d6f0dae7e76fce83":[0,0,0,0,50], "classpcs_1_1_cpp_string_t.html#a1fa8862a5f306553d6f0dae7e76fce83":[1,0,0,0,50], -"classpcs_1_1_cpp_string_t.html#a1fa8862a5f306553d6f0dae7e76fce83":[2,0,0,0,50], +"classpcs_1_1_cpp_string_t.html#a21316d00180377a3f48910a6c4c43b9c":[0,0,0,0,31], "classpcs_1_1_cpp_string_t.html#a21316d00180377a3f48910a6c4c43b9c":[1,0,0,0,31], -"classpcs_1_1_cpp_string_t.html#a21316d00180377a3f48910a6c4c43b9c":[2,0,0,0,31], +"classpcs_1_1_cpp_string_t.html#a24c4b7a0f713373cb3287d92289562ad":[0,0,0,0,17], "classpcs_1_1_cpp_string_t.html#a24c4b7a0f713373cb3287d92289562ad":[1,0,0,0,17], -"classpcs_1_1_cpp_string_t.html#a24c4b7a0f713373cb3287d92289562ad":[2,0,0,0,17], +"classpcs_1_1_cpp_string_t.html#a277a2b8a3b93951ccb94b6bf39daa582":[0,0,0,0,23], "classpcs_1_1_cpp_string_t.html#a277a2b8a3b93951ccb94b6bf39daa582":[1,0,0,0,23], -"classpcs_1_1_cpp_string_t.html#a277a2b8a3b93951ccb94b6bf39daa582":[2,0,0,0,23], +"classpcs_1_1_cpp_string_t.html#a2842f3a067fdc674709bed048d64e12d":[0,0,0,0,36], "classpcs_1_1_cpp_string_t.html#a2842f3a067fdc674709bed048d64e12d":[1,0,0,0,36], -"classpcs_1_1_cpp_string_t.html#a2842f3a067fdc674709bed048d64e12d":[2,0,0,0,36], +"classpcs_1_1_cpp_string_t.html#a2a8c1e78b93da9a0abe471c7a8d85090":[0,0,0,0,93], "classpcs_1_1_cpp_string_t.html#a2a8c1e78b93da9a0abe471c7a8d85090":[1,0,0,0,93], -"classpcs_1_1_cpp_string_t.html#a2a8c1e78b93da9a0abe471c7a8d85090":[2,0,0,0,93], +"classpcs_1_1_cpp_string_t.html#a2baca0ddff848de56a7b867f68d3efab":[0,0,0,0,64], "classpcs_1_1_cpp_string_t.html#a2baca0ddff848de56a7b867f68d3efab":[1,0,0,0,64], -"classpcs_1_1_cpp_string_t.html#a2baca0ddff848de56a7b867f68d3efab":[2,0,0,0,64], +"classpcs_1_1_cpp_string_t.html#a2cc04d5062162ff5f7b6111d6f1e78e8":[0,0,0,0,16], "classpcs_1_1_cpp_string_t.html#a2cc04d5062162ff5f7b6111d6f1e78e8":[1,0,0,0,16], -"classpcs_1_1_cpp_string_t.html#a2cc04d5062162ff5f7b6111d6f1e78e8":[2,0,0,0,16], +"classpcs_1_1_cpp_string_t.html#a30860a043574996d85c80e49ef618594":[0,0,0,0,42], "classpcs_1_1_cpp_string_t.html#a30860a043574996d85c80e49ef618594":[1,0,0,0,42], -"classpcs_1_1_cpp_string_t.html#a30860a043574996d85c80e49ef618594":[2,0,0,0,42], +"classpcs_1_1_cpp_string_t.html#a30e26a3082ad50d01c7d0d98cb9e9c37":[0,0,0,0,52], "classpcs_1_1_cpp_string_t.html#a30e26a3082ad50d01c7d0d98cb9e9c37":[1,0,0,0,52], -"classpcs_1_1_cpp_string_t.html#a30e26a3082ad50d01c7d0d98cb9e9c37":[2,0,0,0,52], +"classpcs_1_1_cpp_string_t.html#a326eb96e19c3559a84af86ff1bf54aa4":[0,0,0,0,84], "classpcs_1_1_cpp_string_t.html#a326eb96e19c3559a84af86ff1bf54aa4":[1,0,0,0,84], -"classpcs_1_1_cpp_string_t.html#a326eb96e19c3559a84af86ff1bf54aa4":[2,0,0,0,84], +"classpcs_1_1_cpp_string_t.html#a3aa66706e268bd570a0084d70dff5cde":[0,0,0,0,73], "classpcs_1_1_cpp_string_t.html#a3aa66706e268bd570a0084d70dff5cde":[1,0,0,0,73], -"classpcs_1_1_cpp_string_t.html#a3aa66706e268bd570a0084d70dff5cde":[2,0,0,0,73], +"classpcs_1_1_cpp_string_t.html#a3b7955f9c7f9452a6a025caaaf0e6d73":[0,0,0,0,86], "classpcs_1_1_cpp_string_t.html#a3b7955f9c7f9452a6a025caaaf0e6d73":[1,0,0,0,86], -"classpcs_1_1_cpp_string_t.html#a3b7955f9c7f9452a6a025caaaf0e6d73":[2,0,0,0,86], +"classpcs_1_1_cpp_string_t.html#a3e9da0bfa54e84420e81668f6ce7f52c":[0,0,0,0,9], "classpcs_1_1_cpp_string_t.html#a3e9da0bfa54e84420e81668f6ce7f52c":[1,0,0,0,9], -"classpcs_1_1_cpp_string_t.html#a3e9da0bfa54e84420e81668f6ce7f52c":[2,0,0,0,9], +"classpcs_1_1_cpp_string_t.html#a42f1e87d7f1903536ee79aa058d5c867":[0,0,0,0,11], "classpcs_1_1_cpp_string_t.html#a42f1e87d7f1903536ee79aa058d5c867":[1,0,0,0,11], -"classpcs_1_1_cpp_string_t.html#a42f1e87d7f1903536ee79aa058d5c867":[2,0,0,0,11], +"classpcs_1_1_cpp_string_t.html#a447b7c58b4be1cdcba3aedf189acbce7":[0,0,0,0,28], "classpcs_1_1_cpp_string_t.html#a447b7c58b4be1cdcba3aedf189acbce7":[1,0,0,0,28], -"classpcs_1_1_cpp_string_t.html#a447b7c58b4be1cdcba3aedf189acbce7":[2,0,0,0,28], +"classpcs_1_1_cpp_string_t.html#a48a00cca031b9c29d1912508e120a5f6":[0,0,0,0,2], "classpcs_1_1_cpp_string_t.html#a48a00cca031b9c29d1912508e120a5f6":[1,0,0,0,2], -"classpcs_1_1_cpp_string_t.html#a48a00cca031b9c29d1912508e120a5f6":[2,0,0,0,2], +"classpcs_1_1_cpp_string_t.html#a4fd91047ab0126c823aa391a699e03bf":[0,0,0,0,15], "classpcs_1_1_cpp_string_t.html#a4fd91047ab0126c823aa391a699e03bf":[1,0,0,0,15], -"classpcs_1_1_cpp_string_t.html#a4fd91047ab0126c823aa391a699e03bf":[2,0,0,0,15], +"classpcs_1_1_cpp_string_t.html#a519a292eb3f0790d54a59a201f2d6410":[0,0,0,0,62], "classpcs_1_1_cpp_string_t.html#a519a292eb3f0790d54a59a201f2d6410":[1,0,0,0,62], -"classpcs_1_1_cpp_string_t.html#a519a292eb3f0790d54a59a201f2d6410":[2,0,0,0,62], +"classpcs_1_1_cpp_string_t.html#a545d669bb9296b5695b01ac8680bf3f4":[0,0,0,0,41], "classpcs_1_1_cpp_string_t.html#a545d669bb9296b5695b01ac8680bf3f4":[1,0,0,0,41], -"classpcs_1_1_cpp_string_t.html#a545d669bb9296b5695b01ac8680bf3f4":[2,0,0,0,41], +"classpcs_1_1_cpp_string_t.html#a546105cc9a8a9d493979c30607092cf1":[0,0,0,0,63], "classpcs_1_1_cpp_string_t.html#a546105cc9a8a9d493979c30607092cf1":[1,0,0,0,63], -"classpcs_1_1_cpp_string_t.html#a546105cc9a8a9d493979c30607092cf1":[2,0,0,0,63], +"classpcs_1_1_cpp_string_t.html#a55a3fa32de834f644ac28d7c2495fa77":[0,0,0,0,78], "classpcs_1_1_cpp_string_t.html#a55a3fa32de834f644ac28d7c2495fa77":[1,0,0,0,78], -"classpcs_1_1_cpp_string_t.html#a55a3fa32de834f644ac28d7c2495fa77":[2,0,0,0,78], +"classpcs_1_1_cpp_string_t.html#a578176ed20fd8da965afbcae1d99dd59":[0,0,0,0,34], "classpcs_1_1_cpp_string_t.html#a578176ed20fd8da965afbcae1d99dd59":[1,0,0,0,34], -"classpcs_1_1_cpp_string_t.html#a578176ed20fd8da965afbcae1d99dd59":[2,0,0,0,34], +"classpcs_1_1_cpp_string_t.html#a59839e3b5a186c2554224dbf4528c1b4":[0,0,0,0,7], "classpcs_1_1_cpp_string_t.html#a59839e3b5a186c2554224dbf4528c1b4":[1,0,0,0,7], -"classpcs_1_1_cpp_string_t.html#a59839e3b5a186c2554224dbf4528c1b4":[2,0,0,0,7], +"classpcs_1_1_cpp_string_t.html#a5a131c385a01ccc5410d4cffa55cf700":[0,0,0,0,83], "classpcs_1_1_cpp_string_t.html#a5a131c385a01ccc5410d4cffa55cf700":[1,0,0,0,83], -"classpcs_1_1_cpp_string_t.html#a5a131c385a01ccc5410d4cffa55cf700":[2,0,0,0,83], +"classpcs_1_1_cpp_string_t.html#a5caecc371bf390272283ceb7a15c6c1d":[0,0,0,0,21], "classpcs_1_1_cpp_string_t.html#a5caecc371bf390272283ceb7a15c6c1d":[1,0,0,0,21], -"classpcs_1_1_cpp_string_t.html#a5caecc371bf390272283ceb7a15c6c1d":[2,0,0,0,21], +"classpcs_1_1_cpp_string_t.html#a61674ee4e97038d82ea7ecc30b1761f6":[0,0,0,0,69], "classpcs_1_1_cpp_string_t.html#a61674ee4e97038d82ea7ecc30b1761f6":[1,0,0,0,69], -"classpcs_1_1_cpp_string_t.html#a61674ee4e97038d82ea7ecc30b1761f6":[2,0,0,0,69], +"classpcs_1_1_cpp_string_t.html#a619935926ef961883e9bbd92b2fc23bd":[0,0,0,0,13], "classpcs_1_1_cpp_string_t.html#a619935926ef961883e9bbd92b2fc23bd":[1,0,0,0,13], -"classpcs_1_1_cpp_string_t.html#a619935926ef961883e9bbd92b2fc23bd":[2,0,0,0,13], +"classpcs_1_1_cpp_string_t.html#a61fd4215938ec9f0fce1f885d6bb4a2b":[0,0,0,0,68], "classpcs_1_1_cpp_string_t.html#a61fd4215938ec9f0fce1f885d6bb4a2b":[1,0,0,0,68], -"classpcs_1_1_cpp_string_t.html#a61fd4215938ec9f0fce1f885d6bb4a2b":[2,0,0,0,68], +"classpcs_1_1_cpp_string_t.html#a6257a1832da550d4be32e9f272e51265":[0,0,0,0,35], "classpcs_1_1_cpp_string_t.html#a6257a1832da550d4be32e9f272e51265":[1,0,0,0,35], -"classpcs_1_1_cpp_string_t.html#a6257a1832da550d4be32e9f272e51265":[2,0,0,0,35], +"classpcs_1_1_cpp_string_t.html#a6693ec49258c6ac80a7875b3ebf3c916":[0,0,0,0,65], "classpcs_1_1_cpp_string_t.html#a6693ec49258c6ac80a7875b3ebf3c916":[1,0,0,0,65], -"classpcs_1_1_cpp_string_t.html#a6693ec49258c6ac80a7875b3ebf3c916":[2,0,0,0,65], +"classpcs_1_1_cpp_string_t.html#a689d2de98f28d131bb0c8b3c87f2f120":[0,0,0,0,94], "classpcs_1_1_cpp_string_t.html#a689d2de98f28d131bb0c8b3c87f2f120":[1,0,0,0,94], -"classpcs_1_1_cpp_string_t.html#a689d2de98f28d131bb0c8b3c87f2f120":[2,0,0,0,94], +"classpcs_1_1_cpp_string_t.html#a6ab02b4d1c8093a5dfc089a45427f63c":[0,0,0,0,91], "classpcs_1_1_cpp_string_t.html#a6ab02b4d1c8093a5dfc089a45427f63c":[1,0,0,0,91], -"classpcs_1_1_cpp_string_t.html#a6ab02b4d1c8093a5dfc089a45427f63c":[2,0,0,0,91], +"classpcs_1_1_cpp_string_t.html#a6b0bc87b284120d0d3bfc685984997c0":[0,0,0,0,18], "classpcs_1_1_cpp_string_t.html#a6b0bc87b284120d0d3bfc685984997c0":[1,0,0,0,18], -"classpcs_1_1_cpp_string_t.html#a6b0bc87b284120d0d3bfc685984997c0":[2,0,0,0,18], +"classpcs_1_1_cpp_string_t.html#a6b23210d7d5eb07c9f942d62cc76b05e":[0,0,0,0,10], "classpcs_1_1_cpp_string_t.html#a6b23210d7d5eb07c9f942d62cc76b05e":[1,0,0,0,10], -"classpcs_1_1_cpp_string_t.html#a6b23210d7d5eb07c9f942d62cc76b05e":[2,0,0,0,10], +"classpcs_1_1_cpp_string_t.html#a710631f31d4c63c2117e8f4804fad3f2":[0,0,0,0,29], "classpcs_1_1_cpp_string_t.html#a710631f31d4c63c2117e8f4804fad3f2":[1,0,0,0,29], -"classpcs_1_1_cpp_string_t.html#a710631f31d4c63c2117e8f4804fad3f2":[2,0,0,0,29], +"classpcs_1_1_cpp_string_t.html#a7565e4f2958e485ee2b0815be1faa0fa":[0,0,0,0,26], "classpcs_1_1_cpp_string_t.html#a7565e4f2958e485ee2b0815be1faa0fa":[1,0,0,0,26], -"classpcs_1_1_cpp_string_t.html#a7565e4f2958e485ee2b0815be1faa0fa":[2,0,0,0,26], +"classpcs_1_1_cpp_string_t.html#a76f97d56e1713182d5e85d58cd445d10":[0,0,0,0,8], "classpcs_1_1_cpp_string_t.html#a76f97d56e1713182d5e85d58cd445d10":[1,0,0,0,8], -"classpcs_1_1_cpp_string_t.html#a76f97d56e1713182d5e85d58cd445d10":[2,0,0,0,8], +"classpcs_1_1_cpp_string_t.html#a790f663f51dfe6e9e15d4f5f025bf107":[0,0,0,0,61], "classpcs_1_1_cpp_string_t.html#a790f663f51dfe6e9e15d4f5f025bf107":[1,0,0,0,61], -"classpcs_1_1_cpp_string_t.html#a790f663f51dfe6e9e15d4f5f025bf107":[2,0,0,0,61], +"classpcs_1_1_cpp_string_t.html#a7beda74b4d5092845a970d51d01fe4bf":[0,0,0,0,6], "classpcs_1_1_cpp_string_t.html#a7beda74b4d5092845a970d51d01fe4bf":[1,0,0,0,6], -"classpcs_1_1_cpp_string_t.html#a7beda74b4d5092845a970d51d01fe4bf":[2,0,0,0,6], +"classpcs_1_1_cpp_string_t.html#a7ca47096b03baa0091c3b0349d210931":[0,0,0,0,76], "classpcs_1_1_cpp_string_t.html#a7ca47096b03baa0091c3b0349d210931":[1,0,0,0,76], -"classpcs_1_1_cpp_string_t.html#a7ca47096b03baa0091c3b0349d210931":[2,0,0,0,76], +"classpcs_1_1_cpp_string_t.html#a7eca5636b598c6fc107452ddd04a2f17":[0,0,0,0,14], "classpcs_1_1_cpp_string_t.html#a7eca5636b598c6fc107452ddd04a2f17":[1,0,0,0,14], -"classpcs_1_1_cpp_string_t.html#a7eca5636b598c6fc107452ddd04a2f17":[2,0,0,0,14], +"classpcs_1_1_cpp_string_t.html#a810a3a27ee7396f9c472648978327a76":[0,0,0,0,53], "classpcs_1_1_cpp_string_t.html#a810a3a27ee7396f9c472648978327a76":[1,0,0,0,53], -"classpcs_1_1_cpp_string_t.html#a810a3a27ee7396f9c472648978327a76":[2,0,0,0,53], +"classpcs_1_1_cpp_string_t.html#a8111cd357773d304fbb496571d7ee6be":[0,0,0,0,70], "classpcs_1_1_cpp_string_t.html#a8111cd357773d304fbb496571d7ee6be":[1,0,0,0,70], -"classpcs_1_1_cpp_string_t.html#a8111cd357773d304fbb496571d7ee6be":[2,0,0,0,70], +"classpcs_1_1_cpp_string_t.html#a86f8c78b2eeb3541fb6b56b4f4ac237b":[0,0,0,0,74], "classpcs_1_1_cpp_string_t.html#a86f8c78b2eeb3541fb6b56b4f4ac237b":[1,0,0,0,74], -"classpcs_1_1_cpp_string_t.html#a86f8c78b2eeb3541fb6b56b4f4ac237b":[2,0,0,0,74], +"classpcs_1_1_cpp_string_t.html#a87b25fce2a05421efd718c599a784a09":[0,0,0,0,12], "classpcs_1_1_cpp_string_t.html#a87b25fce2a05421efd718c599a784a09":[1,0,0,0,12], -"classpcs_1_1_cpp_string_t.html#a87b25fce2a05421efd718c599a784a09":[2,0,0,0,12], +"classpcs_1_1_cpp_string_t.html#a89e850d45d6dec167e763cf748a06971":[0,0,0,0,75], "classpcs_1_1_cpp_string_t.html#a89e850d45d6dec167e763cf748a06971":[1,0,0,0,75], -"classpcs_1_1_cpp_string_t.html#a89e850d45d6dec167e763cf748a06971":[2,0,0,0,75], +"classpcs_1_1_cpp_string_t.html#a8fa2afe84d7fc26f96bbd55f4266df2a":[0,0,0,0,79], "classpcs_1_1_cpp_string_t.html#a8fa2afe84d7fc26f96bbd55f4266df2a":[1,0,0,0,79], -"classpcs_1_1_cpp_string_t.html#a8fa2afe84d7fc26f96bbd55f4266df2a":[2,0,0,0,79], +"classpcs_1_1_cpp_string_t.html#a8fdf96ffee524d5b795c4aad26ece6ae":[0,0,0,0,27], "classpcs_1_1_cpp_string_t.html#a8fdf96ffee524d5b795c4aad26ece6ae":[1,0,0,0,27], -"classpcs_1_1_cpp_string_t.html#a8fdf96ffee524d5b795c4aad26ece6ae":[2,0,0,0,27], +"classpcs_1_1_cpp_string_t.html#a91f72d425dbb4c53a066338d30683246":[0,0,0,0,32], "classpcs_1_1_cpp_string_t.html#a91f72d425dbb4c53a066338d30683246":[1,0,0,0,32], -"classpcs_1_1_cpp_string_t.html#a91f72d425dbb4c53a066338d30683246":[2,0,0,0,32], +"classpcs_1_1_cpp_string_t.html#a944e066f3a863c354a5613a6eda17374":[0,0,0,0,22], "classpcs_1_1_cpp_string_t.html#a944e066f3a863c354a5613a6eda17374":[1,0,0,0,22], -"classpcs_1_1_cpp_string_t.html#a944e066f3a863c354a5613a6eda17374":[2,0,0,0,22], +"classpcs_1_1_cpp_string_t.html#a959a8f56bb536f2474ffc649a7ad3290":[0,0,0,0,37], "classpcs_1_1_cpp_string_t.html#a959a8f56bb536f2474ffc649a7ad3290":[1,0,0,0,37], -"classpcs_1_1_cpp_string_t.html#a959a8f56bb536f2474ffc649a7ad3290":[2,0,0,0,37], +"classpcs_1_1_cpp_string_t.html#a9debc70420a3fbc7722e3111aeccd819":[0,0,0,0,90], "classpcs_1_1_cpp_string_t.html#a9debc70420a3fbc7722e3111aeccd819":[1,0,0,0,90], -"classpcs_1_1_cpp_string_t.html#a9debc70420a3fbc7722e3111aeccd819":[2,0,0,0,90], +"classpcs_1_1_cpp_string_t.html#a9eed3f6c5e09f98f3d5916cc5b3a4311":[0,0,0,0,44], "classpcs_1_1_cpp_string_t.html#a9eed3f6c5e09f98f3d5916cc5b3a4311":[1,0,0,0,44], -"classpcs_1_1_cpp_string_t.html#a9eed3f6c5e09f98f3d5916cc5b3a4311":[2,0,0,0,44], +"classpcs_1_1_cpp_string_t.html#a9f43f20029596abc1362d1242e68e5db":[0,0,0,0,59], "classpcs_1_1_cpp_string_t.html#a9f43f20029596abc1362d1242e68e5db":[1,0,0,0,59], -"classpcs_1_1_cpp_string_t.html#a9f43f20029596abc1362d1242e68e5db":[2,0,0,0,59], +"classpcs_1_1_cpp_string_t.html#aa3523b858357399995e4fb9ec796c96c":[0,0,0,0,40], "classpcs_1_1_cpp_string_t.html#aa3523b858357399995e4fb9ec796c96c":[1,0,0,0,40], -"classpcs_1_1_cpp_string_t.html#aa3523b858357399995e4fb9ec796c96c":[2,0,0,0,40], +"classpcs_1_1_cpp_string_t.html#ab0ace502f0b3026fefd2942a1e8a0456":[0,0,0,0,72], "classpcs_1_1_cpp_string_t.html#ab0ace502f0b3026fefd2942a1e8a0456":[1,0,0,0,72], -"classpcs_1_1_cpp_string_t.html#ab0ace502f0b3026fefd2942a1e8a0456":[2,0,0,0,72], +"classpcs_1_1_cpp_string_t.html#ab2b293c5f1b55af52ceb75b8f7e4d42e":[0,0,0,0,87], "classpcs_1_1_cpp_string_t.html#ab2b293c5f1b55af52ceb75b8f7e4d42e":[1,0,0,0,87], -"classpcs_1_1_cpp_string_t.html#ab2b293c5f1b55af52ceb75b8f7e4d42e":[2,0,0,0,87], +"classpcs_1_1_cpp_string_t.html#ac00bb6f7d74bfdde0d4cc247e78ab20e":[0,0,0,0,58], "classpcs_1_1_cpp_string_t.html#ac00bb6f7d74bfdde0d4cc247e78ab20e":[1,0,0,0,58], -"classpcs_1_1_cpp_string_t.html#ac00bb6f7d74bfdde0d4cc247e78ab20e":[2,0,0,0,58], +"classpcs_1_1_cpp_string_t.html#ac1ad3018d38f291e6debad8d2de92be1":[0,0,0,0,47], "classpcs_1_1_cpp_string_t.html#ac1ad3018d38f291e6debad8d2de92be1":[1,0,0,0,47], -"classpcs_1_1_cpp_string_t.html#ac1ad3018d38f291e6debad8d2de92be1":[2,0,0,0,47], +"classpcs_1_1_cpp_string_t.html#ac1b427d4cc4c2aed8252b3526b63f1b1":[0,0,0,0,43], "classpcs_1_1_cpp_string_t.html#ac1b427d4cc4c2aed8252b3526b63f1b1":[1,0,0,0,43], -"classpcs_1_1_cpp_string_t.html#ac1b427d4cc4c2aed8252b3526b63f1b1":[2,0,0,0,43], +"classpcs_1_1_cpp_string_t.html#ac3079cbecbdf4151e66f602f39ece836":[0,0,0,0,66], "classpcs_1_1_cpp_string_t.html#ac3079cbecbdf4151e66f602f39ece836":[1,0,0,0,66], -"classpcs_1_1_cpp_string_t.html#ac3079cbecbdf4151e66f602f39ece836":[2,0,0,0,66], +"classpcs_1_1_cpp_string_t.html#ac4c9351bb52eb9a62fa7fb2e2d5f054d":[0,0,0,0,19], "classpcs_1_1_cpp_string_t.html#ac4c9351bb52eb9a62fa7fb2e2d5f054d":[1,0,0,0,19], -"classpcs_1_1_cpp_string_t.html#ac4c9351bb52eb9a62fa7fb2e2d5f054d":[2,0,0,0,19], +"classpcs_1_1_cpp_string_t.html#ac5f88b0fc1f33cda23c30cb1f3bc560f":[0,0,0,0,54], "classpcs_1_1_cpp_string_t.html#ac5f88b0fc1f33cda23c30cb1f3bc560f":[1,0,0,0,54], -"classpcs_1_1_cpp_string_t.html#ac5f88b0fc1f33cda23c30cb1f3bc560f":[2,0,0,0,54], +"classpcs_1_1_cpp_string_t.html#acf4d923cfed55cfd90cf12651ce0ac3d":[0,0,0,0,77], "classpcs_1_1_cpp_string_t.html#acf4d923cfed55cfd90cf12651ce0ac3d":[1,0,0,0,77], -"classpcs_1_1_cpp_string_t.html#acf4d923cfed55cfd90cf12651ce0ac3d":[2,0,0,0,77], +"classpcs_1_1_cpp_string_t.html#ad2cfcc7bd22736ebd9f91f04e6a42f8c":[0,0,0,0,82], "classpcs_1_1_cpp_string_t.html#ad2cfcc7bd22736ebd9f91f04e6a42f8c":[1,0,0,0,82], -"classpcs_1_1_cpp_string_t.html#ad2cfcc7bd22736ebd9f91f04e6a42f8c":[2,0,0,0,82], +"classpcs_1_1_cpp_string_t.html#ad3d2b94f37325096205e399b95e9fc5d":[0,0,0,0,95], "classpcs_1_1_cpp_string_t.html#ad3d2b94f37325096205e399b95e9fc5d":[1,0,0,0,95], -"classpcs_1_1_cpp_string_t.html#ad3d2b94f37325096205e399b95e9fc5d":[2,0,0,0,95], +"classpcs_1_1_cpp_string_t.html#ad4f39683db649aa8a65907268c499f02":[0,0,0,0,57], "classpcs_1_1_cpp_string_t.html#ad4f39683db649aa8a65907268c499f02":[1,0,0,0,57], -"classpcs_1_1_cpp_string_t.html#ad4f39683db649aa8a65907268c499f02":[2,0,0,0,57], +"classpcs_1_1_cpp_string_t.html#ad5c765eaa85cb4a3e7a914d55a6a5175":[0,0,0,0,46], "classpcs_1_1_cpp_string_t.html#ad5c765eaa85cb4a3e7a914d55a6a5175":[1,0,0,0,46], -"classpcs_1_1_cpp_string_t.html#ad5c765eaa85cb4a3e7a914d55a6a5175":[2,0,0,0,46], +"classpcs_1_1_cpp_string_t.html#ad6a8dc124ab8b7cab1cb328240763ed0":[0,0,0,0,56], "classpcs_1_1_cpp_string_t.html#ad6a8dc124ab8b7cab1cb328240763ed0":[1,0,0,0,56], -"classpcs_1_1_cpp_string_t.html#ad6a8dc124ab8b7cab1cb328240763ed0":[2,0,0,0,56], +"classpcs_1_1_cpp_string_t.html#ad72611f339c2b9027a72fa26f25748c3":[0,0,0,0,38], "classpcs_1_1_cpp_string_t.html#ad72611f339c2b9027a72fa26f25748c3":[1,0,0,0,38], -"classpcs_1_1_cpp_string_t.html#ad72611f339c2b9027a72fa26f25748c3":[2,0,0,0,38], +"classpcs_1_1_cpp_string_t.html#ae0865e2c7f8a4871804bf71c1c982dc6":[0,0,0,0,85], "classpcs_1_1_cpp_string_t.html#ae0865e2c7f8a4871804bf71c1c982dc6":[1,0,0,0,85], -"classpcs_1_1_cpp_string_t.html#ae0865e2c7f8a4871804bf71c1c982dc6":[2,0,0,0,85], +"classpcs_1_1_cpp_string_t.html#ae2f755ae7903586a2086b7b7f943d96e":[0,0,0,0,81], "classpcs_1_1_cpp_string_t.html#ae2f755ae7903586a2086b7b7f943d96e":[1,0,0,0,81], -"classpcs_1_1_cpp_string_t.html#ae2f755ae7903586a2086b7b7f943d96e":[2,0,0,0,81], +"classpcs_1_1_cpp_string_t.html#ae4ff448bb92e6499c0a76f7d8e11126c":[0,0,0,0,33], "classpcs_1_1_cpp_string_t.html#ae4ff448bb92e6499c0a76f7d8e11126c":[1,0,0,0,33], -"classpcs_1_1_cpp_string_t.html#ae4ff448bb92e6499c0a76f7d8e11126c":[2,0,0,0,33], +"classpcs_1_1_cpp_string_t.html#aed96c44c384cab45342122cd7e2f02eb":[0,0,0,0,45], "classpcs_1_1_cpp_string_t.html#aed96c44c384cab45342122cd7e2f02eb":[1,0,0,0,45], -"classpcs_1_1_cpp_string_t.html#aed96c44c384cab45342122cd7e2f02eb":[2,0,0,0,45], +"classpcs_1_1_cpp_string_t.html#aee6e48d5b478d5bab239f54523d23c15":[0,0,0,0,48], "classpcs_1_1_cpp_string_t.html#aee6e48d5b478d5bab239f54523d23c15":[1,0,0,0,48], -"classpcs_1_1_cpp_string_t.html#aee6e48d5b478d5bab239f54523d23c15":[2,0,0,0,48], +"classpcs_1_1_cpp_string_t.html#aee94d4b52483021051b168e776b18569":[0,0,0,0,25], "classpcs_1_1_cpp_string_t.html#aee94d4b52483021051b168e776b18569":[1,0,0,0,25], -"classpcs_1_1_cpp_string_t.html#aee94d4b52483021051b168e776b18569":[2,0,0,0,25], +"classpcs_1_1_cpp_string_t.html#af18311d8608e71627bc85f96581e4dd3":[0,0,0,0,3], "classpcs_1_1_cpp_string_t.html#af18311d8608e71627bc85f96581e4dd3":[1,0,0,0,3], -"classpcs_1_1_cpp_string_t.html#af18311d8608e71627bc85f96581e4dd3":[2,0,0,0,3], +"classpcs_1_1_cpp_string_t.html#af2784cbe9655bb8e23fe90375d79e69c":[0,0,0,0,39], "classpcs_1_1_cpp_string_t.html#af2784cbe9655bb8e23fe90375d79e69c":[1,0,0,0,39], -"classpcs_1_1_cpp_string_t.html#af2784cbe9655bb8e23fe90375d79e69c":[2,0,0,0,39], +"classpcs_1_1_cpp_string_t.html#af363308ba741b267641e1aa35669d603":[0,0,0,0,60], "classpcs_1_1_cpp_string_t.html#af363308ba741b267641e1aa35669d603":[1,0,0,0,60], -"classpcs_1_1_cpp_string_t.html#af363308ba741b267641e1aa35669d603":[2,0,0,0,60], +"classpcs_1_1_cpp_string_t.html#afc08a4e91b93710838c8f0d6234e057e":[0,0,0,0,67], "classpcs_1_1_cpp_string_t.html#afc08a4e91b93710838c8f0d6234e057e":[1,0,0,0,67], -"classpcs_1_1_cpp_string_t.html#afc08a4e91b93710838c8f0d6234e057e":[2,0,0,0,67], +"classpcs_1_1_cpp_string_t_1_1_not_found_exception.html":[0,0,0,0,0], "classpcs_1_1_cpp_string_t_1_1_not_found_exception.html":[1,0,0,0,0], -"classpcs_1_1_cpp_string_t_1_1_not_found_exception.html":[2,0,0,0,0], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html":[0,0,0,0,1], "classpcs_1_1_cpp_string_t_1_1_trans_table.html":[1,0,0,0,1], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html":[2,0,0,0,1], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a1c10bb78e74942f88247cde65a03d557":[0,0,0,0,1,8], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a1c10bb78e74942f88247cde65a03d557":[1,0,0,0,1,8], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a1c10bb78e74942f88247cde65a03d557":[2,0,0,0,1,8], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a1fea49a165ebb7cda36c1bfdcbe95ee0":[0,0,0,0,1,0], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a1fea49a165ebb7cda36c1bfdcbe95ee0":[1,0,0,0,1,0], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a1fea49a165ebb7cda36c1bfdcbe95ee0":[2,0,0,0,1,0], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a21791e46266edb8eea13876559b352a2":[0,0,0,0,1,9], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a21791e46266edb8eea13876559b352a2":[1,0,0,0,1,9], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a21791e46266edb8eea13876559b352a2":[2,0,0,0,1,9], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a3efc5aab74f3a0594a9e88562d57867d":[0,0,0,0,1,17], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a3efc5aab74f3a0594a9e88562d57867d":[1,0,0,0,1,17], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a3efc5aab74f3a0594a9e88562d57867d":[2,0,0,0,1,17], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a4f1dd7fb1ede54aa662c808eb84cda41":[0,0,0,0,1,15], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a4f1dd7fb1ede54aa662c808eb84cda41":[1,0,0,0,1,15], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a4f1dd7fb1ede54aa662c808eb84cda41":[2,0,0,0,1,15], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a551b96c6c0ab2bf9183de0bfcc6770a2":[0,0,0,0,1,7], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a551b96c6c0ab2bf9183de0bfcc6770a2":[1,0,0,0,1,7], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a551b96c6c0ab2bf9183de0bfcc6770a2":[2,0,0,0,1,7], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a5efa34c2e8b016458388693a7ab8f590":[0,0,0,0,1,1], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a5efa34c2e8b016458388693a7ab8f590":[1,0,0,0,1,1], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a5efa34c2e8b016458388693a7ab8f590":[2,0,0,0,1,1], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a69a3ab2775d7e6537528a3eba3c4134a":[0,0,0,0,1,11], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a69a3ab2775d7e6537528a3eba3c4134a":[1,0,0,0,1,11], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a69a3ab2775d7e6537528a3eba3c4134a":[2,0,0,0,1,11], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a78d8ac95a740d405c761c73166c9b787":[0,0,0,0,1,6], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a78d8ac95a740d405c761c73166c9b787":[1,0,0,0,1,6], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a78d8ac95a740d405c761c73166c9b787":[2,0,0,0,1,6], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a7da38829b171a7a9147b43086e067454":[0,0,0,0,1,10], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a7da38829b171a7a9147b43086e067454":[1,0,0,0,1,10], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a7da38829b171a7a9147b43086e067454":[2,0,0,0,1,10], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a90ac2a729fc715870e7f32ea9c6536f9":[0,0,0,0,1,18], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a90ac2a729fc715870e7f32ea9c6536f9":[1,0,0,0,1,18], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a90ac2a729fc715870e7f32ea9c6536f9":[2,0,0,0,1,18], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a9d7651fe71544575150ebc08022cb885":[0,0,0,0,1,5], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#a9d7651fe71544575150ebc08022cb885":[1,0,0,0,1,5], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#a9d7651fe71544575150ebc08022cb885":[2,0,0,0,1,5], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#aa9182c3323cdba7f6dd30bfa56ebb8fe":[0,0,0,0,1,12], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#aa9182c3323cdba7f6dd30bfa56ebb8fe":[1,0,0,0,1,12], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#aa9182c3323cdba7f6dd30bfa56ebb8fe":[2,0,0,0,1,12], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#aa99c6a9fafac1361cd8a0fc4578fa084":[0,0,0,0,1,2], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#aa99c6a9fafac1361cd8a0fc4578fa084":[1,0,0,0,1,2], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#aa99c6a9fafac1361cd8a0fc4578fa084":[2,0,0,0,1,2], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#aae6cedd7e9c8409e76787c910476813e":[0,0,0,0,1,3], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#aae6cedd7e9c8409e76787c910476813e":[1,0,0,0,1,3], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#aae6cedd7e9c8409e76787c910476813e":[2,0,0,0,1,3], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#ab7a09175127849e20aa8aa5b999b4413":[0,0,0,0,1,14], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#ab7a09175127849e20aa8aa5b999b4413":[1,0,0,0,1,14], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#ab7a09175127849e20aa8aa5b999b4413":[2,0,0,0,1,14], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#abbbcd9cf0c3ac0a364864f734363dd4c":[0,0,0,0,1,13], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#abbbcd9cf0c3ac0a364864f734363dd4c":[1,0,0,0,1,13], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#abbbcd9cf0c3ac0a364864f734363dd4c":[2,0,0,0,1,13], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#abf0efc2e493b5c0347327b7c1f175ed8":[0,0,0,0,1,4], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#abf0efc2e493b5c0347327b7c1f175ed8":[1,0,0,0,1,4], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#abf0efc2e493b5c0347327b7c1f175ed8":[2,0,0,0,1,4], +"classpcs_1_1_cpp_string_t_1_1_trans_table.html#addccd32880c403ee20a6a8423d8d3f8b":[0,0,0,0,1,16], "classpcs_1_1_cpp_string_t_1_1_trans_table.html#addccd32880c403ee20a6a8423d8d3f8b":[1,0,0,0,1,16], -"classpcs_1_1_cpp_string_t_1_1_trans_table.html#addccd32880c403ee20a6a8423d8d3f8b":[2,0,0,0,1,16], +"classpcs_1_1_slice.html":[0,0,0,1], "classpcs_1_1_slice.html":[1,0,0,1], -"classpcs_1_1_slice.html":[2,0,0,1], +"classpcs_1_1_slice.html#a0fed0ac66885187eb64d1982e0461916":[0,0,0,1,9], "classpcs_1_1_slice.html#a0fed0ac66885187eb64d1982e0461916":[1,0,0,1,9], -"classpcs_1_1_slice.html#a0fed0ac66885187eb64d1982e0461916":[2,0,0,1,9], +"classpcs_1_1_slice.html#a5280a9d6974217c94de5d9027e10d4e1":[0,0,0,1,7], "classpcs_1_1_slice.html#a5280a9d6974217c94de5d9027e10d4e1":[1,0,0,1,7], -"classpcs_1_1_slice.html#a5280a9d6974217c94de5d9027e10d4e1":[2,0,0,1,7], +"classpcs_1_1_slice.html#a55f046a5343a6ea1bbff8686d2e72d78":[0,0,0,1,8], "classpcs_1_1_slice.html#a55f046a5343a6ea1bbff8686d2e72d78":[1,0,0,1,8], -"classpcs_1_1_slice.html#a55f046a5343a6ea1bbff8686d2e72d78":[2,0,0,1,8], +"classpcs_1_1_slice.html#a79edb1eb4e6bce136f730d82f7afeaff":[0,0,0,1,5], "classpcs_1_1_slice.html#a79edb1eb4e6bce136f730d82f7afeaff":[1,0,0,1,5], -"classpcs_1_1_slice.html#a79edb1eb4e6bce136f730d82f7afeaff":[2,0,0,1,5], +"classpcs_1_1_slice.html#aa3e4bcf5cfd5917cc10e0641030984c2":[0,0,0,1,6], "classpcs_1_1_slice.html#aa3e4bcf5cfd5917cc10e0641030984c2":[1,0,0,1,6], -"classpcs_1_1_slice.html#aa3e4bcf5cfd5917cc10e0641030984c2":[2,0,0,1,6], +"classpcs_1_1_slice.html#ab51c3b03351e495729545f2fdaebb888":[0,0,0,1,0], "classpcs_1_1_slice.html#ab51c3b03351e495729545f2fdaebb888":[1,0,0,1,0], -"classpcs_1_1_slice.html#ab51c3b03351e495729545f2fdaebb888":[2,0,0,1,0], -"classpcs_1_1_slice.html#ab55cf50ae2018337b942e7b9e08e3e6d":[1,0,0,1,2], -"classpcs_1_1_slice.html#ab55cf50ae2018337b942e7b9e08e3e6d":[2,0,0,1,2] +"classpcs_1_1_slice.html#ab55cf50ae2018337b942e7b9e08e3e6d":[0,0,0,1,2], +"classpcs_1_1_slice.html#ab55cf50ae2018337b942e7b9e08e3e6d":[1,0,0,1,2] }; diff --git a/documentation/navtreeindex1.js b/documentation/navtreeindex1.js new file mode 100644 index 0000000..b1c2e12 --- /dev/null +++ b/documentation/navtreeindex1.js @@ -0,0 +1,96 @@ +var NAVTREEINDEX1 = +{ +"classpcs_1_1_slice.html#abdb6694913ed37cf4efc5d85e990c7b5":[0,0,0,1,1], +"classpcs_1_1_slice.html#abdb6694913ed37cf4efc5d85e990c7b5":[1,0,0,1,1], +"classpcs_1_1_slice.html#aee5b0e0110ef1ee32763da9b2386b59c":[0,0,0,1,3], +"classpcs_1_1_slice.html#aee5b0e0110ef1ee32763da9b2386b59c":[1,0,0,1,3], +"classpcs_1_1_slice.html#afa6b7dc85e796da20dd5933d49400996":[0,0,0,1,4], +"classpcs_1_1_slice.html#afa6b7dc85e796da20dd5933d49400996":[1,0,0,1,4], +"functions.html":[1,3,0], +"functions_func.html":[1,3,1], +"hierarchy.html":[1,2], +"index.html":[], +"namespacemembers.html":[0,1,0], +"namespacemembers_func.html":[0,1,1], +"namespacemembers_type.html":[0,1,2], +"namespacepcs.html":[0,0,0], +"namespacepcs.html#a01c6093b1a8ef52114f799635ff930d5":[0,0,0,19], +"namespacepcs.html#a02d340dd9c510eda0fbfed07a08d0792":[0,0,0,31], +"namespacepcs.html#a069625790af3ecf05a424c2c53eabfc0":[0,0,0,12], +"namespacepcs.html#a08d21c458d61442667df24212920d0d9":[0,0,0,8], +"namespacepcs.html#a1cd19ec212e3ada992a8effb8d5d872d":[0,0,0,29], +"namespacepcs.html#a242e3c28e3d47d19d70ab70d83e74d35":[0,0,0,26], +"namespacepcs.html#a28f77929d599a862403a4471f6b73fc3":[0,0,0,15], +"namespacepcs.html#a29893984c95e53a6efe01f74c2dcc03a":[0,0,0,23], +"namespacepcs.html#a30ed0cd7942d081369f78a49a029d8b1":[0,0,0,30], +"namespacepcs.html#a363e2bac9c403a623c5a410f7113edd3":[0,0,0,33], +"namespacepcs.html#a40bc3d234e3c737f34d267151ca62014":[0,0,0,10], +"namespacepcs.html#a4c4164fedd9cb659873a980fa855f4a2":[0,0,0,44], +"namespacepcs.html#a51cd6883557ab31a1e0c8e7b5ab27351":[0,0,0,28], +"namespacepcs.html#a52b12f8beb4ab7d8b819ca24180e08d1":[0,0,0,17], +"namespacepcs.html#a57a765c6eb624107a2176a56cf2220a7":[0,0,0,36], +"namespacepcs.html#a607c82cc94f2b6473d8391334eed8c14":[0,0,0,46], +"namespacepcs.html#a60a2017b25d3d06b83e72f5ed5a93d09":[0,0,0,16], +"namespacepcs.html#a714cfa835ef4db5180309829ee8e27a9":[0,0,0,35], +"namespacepcs.html#a79a822cea8e301fd51d2ed51dff57286":[0,0,0,9], +"namespacepcs.html#a8cb1cd0a1e39d92893eb7d22145f5d65":[0,0,0,37], +"namespacepcs.html#a965f285db4253ce86ed59fccc2e8be61":[0,0,0,43], +"namespacepcs.html#a9f0ba4e85fc273fad1a8b489f3be7fa8":[0,0,0,14], +"namespacepcs.html#aa36d34c2227cde5856e8d61fa6e4af58":[0,0,0,32], +"namespacepcs.html#aaf8dcc64819cbf8631fc63e0dd522811":[0,0,0,48], +"namespacepcs.html#ab097a99126055ab4c843eb6efb573bb1":[0,0,0,45], +"namespacepcs.html#ab5077443809e9e4eb7bfa463728f398a":[0,0,0,39], +"namespacepcs.html#ab823c7be920affd05f96a6ad8b99accf":[0,0,0,47], +"namespacepcs.html#abfda7874fe5b1f72c1c5a9a04d5c7e42":[0,0,0,21], +"namespacepcs.html#ac25d471fa1d838401335776ad4b6ead1":[0,0,0,38], +"namespacepcs.html#ac6e0b881e35c04e9b5bbe6e8b17ee1a7":[0,0,0,42], +"namespacepcs.html#ac7822fd0c570f69d597936a24c38ba2a":[0,0,0,13], +"namespacepcs.html#acab7e7bb1ffd6e4ea1a8300b05478647":[0,0,0,27], +"namespacepcs.html#acb7395de8ef88696d0c8c9772e172118":[0,0,0,41], +"namespacepcs.html#ad1d1b13c16ce784055e93af9fa34fb5c":[0,0,0,24], +"namespacepcs.html#ade5b26313fc856bb882109d6945629b8":[0,0,0,11], +"namespacepcs.html#aedd570e9ffa0572d56fce5085594bdbb":[0,0,0,22], +"namespacepcs.html#aef0240331a343bb1ad13eb613ca93fa4":[0,0,0,20], +"namespacepcs.html#af089ceadbeaab27e12ad7f7edaaec72a":[0,0,0,34], +"namespacepcs.html#af1b60c1081e8bc3b4cd91fbe240e9b87":[0,0,0,25], +"namespacepcs.html#af7c58514e3378a219904f22eb22e9072":[0,0,0,18], +"namespacepcs.html#afb8dd890fe893aba3264ac7df4fe7124":[0,0,0,40], +"namespaces.html":[0,0], +"pages.html":[], +"structpcs_1_1_start_slice.html":[0,0,0,2], +"structpcs_1_1_start_slice.html":[1,0,0,2], +"structpcs_1_1_start_slice.html#a6f792a61218b7598f8f6bb37dcdae56e":[0,0,0,2,1], +"structpcs_1_1_start_slice.html#a6f792a61218b7598f8f6bb37dcdae56e":[1,0,0,2,1], +"structpcs_1_1_start_slice.html#ae435a090e0d93fe221cab4822e352886":[0,0,0,2,0], +"structpcs_1_1_start_slice.html#ae435a090e0d93fe221cab4822e352886":[1,0,0,2,0], +"structpcs_1_1_start_step_slice.html":[0,0,0,3], +"structpcs_1_1_start_step_slice.html":[1,0,0,3], +"structpcs_1_1_start_step_slice.html#a438eef8b248cc00ed48afda08aff6d4c":[0,0,0,3,0], +"structpcs_1_1_start_step_slice.html#a438eef8b248cc00ed48afda08aff6d4c":[1,0,0,3,0], +"structpcs_1_1_start_step_slice.html#adc0aae8a3849379742e23c4f3a3197a9":[0,0,0,3,1], +"structpcs_1_1_start_step_slice.html#adc0aae8a3849379742e23c4f3a3197a9":[1,0,0,3,1], +"structpcs_1_1_start_stop_slice.html":[0,0,0,4], +"structpcs_1_1_start_stop_slice.html":[1,0,0,4], +"structpcs_1_1_start_stop_slice.html#a7c8ad9cb9d63fb9d56b3dbc9647297b4":[0,0,0,4,0], +"structpcs_1_1_start_stop_slice.html#a7c8ad9cb9d63fb9d56b3dbc9647297b4":[1,0,0,4,0], +"structpcs_1_1_start_stop_slice.html#a95df964c79860a475a63da3e56301ea7":[0,0,0,4,1], +"structpcs_1_1_start_stop_slice.html#a95df964c79860a475a63da3e56301ea7":[1,0,0,4,1], +"structpcs_1_1_step_slice.html":[0,0,0,5], +"structpcs_1_1_step_slice.html":[1,0,0,5], +"structpcs_1_1_step_slice.html#a93892e4d8f153a06a65e0cd13ebfa949":[0,0,0,5,1], +"structpcs_1_1_step_slice.html#a93892e4d8f153a06a65e0cd13ebfa949":[1,0,0,5,1], +"structpcs_1_1_step_slice.html#ad24accb58329f71457fbaf00fbbbf874":[0,0,0,5,0], +"structpcs_1_1_step_slice.html#ad24accb58329f71457fbaf00fbbbf874":[1,0,0,5,0], +"structpcs_1_1_stop_slice.html":[0,0,0,6], +"structpcs_1_1_stop_slice.html":[1,0,0,6], +"structpcs_1_1_stop_slice.html#a6e7e761a846ec00b1f24be9f83830f25":[0,0,0,6,1], +"structpcs_1_1_stop_slice.html#a6e7e761a846ec00b1f24be9f83830f25":[1,0,0,6,1], +"structpcs_1_1_stop_slice.html#a9d59c11b1bc398b71abc59b4071da379":[0,0,0,6,0], +"structpcs_1_1_stop_slice.html#a9d59c11b1bc398b71abc59b4071da379":[1,0,0,6,0], +"structpcs_1_1_stop_step_slice.html":[0,0,0,7], +"structpcs_1_1_stop_step_slice.html":[1,0,0,7], +"structpcs_1_1_stop_step_slice.html#a86288ad6b535b8b4d522e8173511c639":[0,0,0,7,0], +"structpcs_1_1_stop_step_slice.html#a86288ad6b535b8b4d522e8173511c639":[1,0,0,7,0], +"structpcs_1_1_stop_step_slice.html#aa62d3d31f646766a6ea2ef3cd9f91491":[0,0,0,7,1], +"structpcs_1_1_stop_step_slice.html#aa62d3d31f646766a6ea2ef3cd9f91491":[1,0,0,7,1] +}; diff --git a/cpp-strings/html/search/all_4.js b/documentation/search/all_0.js similarity index 100% rename from cpp-strings/html/search/all_4.js rename to documentation/search/all_0.js diff --git a/documentation/search/all_1.js b/documentation/search/all_1.js new file mode 100644 index 0000000..4a304af --- /dev/null +++ b/documentation/search/all_1.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['capitalize_0',['capitalize',['../classpcs_1_1_cpp_string_t.html#a48a00cca031b9c29d1912508e120a5f6',1,'pcs::CppStringT']]], + ['center_1',['center',['../classpcs_1_1_cpp_string_t.html#af18311d8608e71627bc85f96581e4dd3',1,'pcs::CppStringT']]], + ['contains_2',['contains',['../classpcs_1_1_cpp_string_t.html#a0674e29327353aabf83d0e207fed31ed',1,'pcs::CppStringT']]], + ['contains_5fn_3',['contains_n',['../classpcs_1_1_cpp_string_t.html#a031b05f290f589b2df52bb84252c27c7',1,'pcs::CppStringT']]], + ['count_4',['count',['../classpcs_1_1_cpp_string_t.html#a7beda74b4d5092845a970d51d01fe4bf',1,'pcs::CppStringT']]], + ['count_5fn_5',['count_n',['../classpcs_1_1_cpp_string_t.html#a76f97d56e1713182d5e85d58cd445d10',1,'pcs::CppStringT::count_n(const CppStringT &sub, const size_type start, const size_type length) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a59839e3b5a186c2554224dbf4528c1b4',1,'pcs::CppStringT::count_n(const CppStringT &sub, const size_type length) const noexcept']]], + ['cppstring_6',['CppString',['../namespacepcs.html#a08d21c458d61442667df24212920d0d9',1,'pcs']]], + ['cppstringt_7',['CppStringT',['../classpcs_1_1_cpp_string_t.html',1,'pcs']]], + ['cppstringt_3c_20char_20_3e_8',['CppStringT< char >',['../classpcs_1_1_cpp_string_t.html',1,'pcs']]], + ['cppstringt_3c_20wchar_5ft_20_3e_9',['CppStringT< wchar_t >',['../classpcs_1_1_cpp_string_t.html',1,'pcs']]], + ['cppwstring_10',['CppWString',['../namespacepcs.html#a79a822cea8e301fd51d2ed51dff57286',1,'pcs']]] +]; diff --git a/cpp-strings/html/search/all_17.js b/documentation/search/all_10.js similarity index 100% rename from cpp-strings/html/search/all_17.js rename to documentation/search/all_10.js diff --git a/cpp-strings/html/search/all_11.js b/documentation/search/all_11.js similarity index 86% rename from cpp-strings/html/search/all_11.js rename to documentation/search/all_11.js index 9896b90..30c6fb0 100644 --- a/cpp-strings/html/search/all_11.js +++ b/documentation/search/all_11.js @@ -1,8 +1,8 @@ var searchData= [ - ['release_201_200_0',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]], - ['release_201_200_201_200_200_20229_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['release_20release_201_200_201_200_200_20229_202025_2007_2',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], + ['release_201_200_0',['Missing parts in Release 1.0',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md6',1,'']]], + ['release_201_200_201_200_202_20232_202025_2007_1',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]], + ['release_20release_201_200_201_200_202_20232_202025_2007_2',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]], ['removeprefix_3',['removeprefix',['../classpcs_1_1_cpp_string_t.html#a058704b7f4538ec9e1798c5348d37c7a',1,'pcs::CppStringT']]], ['removesuffix_4',['removesuffix',['../classpcs_1_1_cpp_string_t.html#ad6a8dc124ab8b7cab1cb328240763ed0',1,'pcs::CppStringT']]], ['replace_5',['replace',['../classpcs_1_1_cpp_string_t.html#ad4f39683db649aa8a65907268c499f02',1,'pcs::CppStringT']]], diff --git a/cpp-strings/html/search/all_12.js b/documentation/search/all_12.js similarity index 92% rename from cpp-strings/html/search/all_12.js rename to documentation/search/all_12.js index 5928f61..1bd9f1d 100644 --- a/cpp-strings/html/search/all_12.js +++ b/documentation/search/all_12.js @@ -14,8 +14,8 @@ var searchData= ['stop_11',['stop',['../classpcs_1_1_slice.html#a0fed0ac66885187eb64d1982e0461916',1,'pcs::Slice']]], ['stopslice_12',['StopSlice',['../structpcs_1_1_stop_slice.html',1,'pcs::StopSlice< IntT >'],['../structpcs_1_1_stop_slice.html#a9d59c11b1bc398b71abc59b4071da379',1,'pcs::StopSlice::StopSlice()']]], ['stopstepslice_13',['StopStepSlice',['../structpcs_1_1_stop_step_slice.html',1,'pcs::StopStepSlice< IntT >'],['../structpcs_1_1_stop_step_slice.html#a86288ad6b535b8b4d522e8173511c639',1,'pcs::StopStepSlice::StopStepSlice()']]], - ['strings_14',['strings',['../index.html',1,'Library cpp-strings'],['../index.html#autotoc_md1',1,'What if c++ strings where as easy to use as Python strings?']]], - ['strings_20where_20as_20easy_20to_20use_20as_20python_20strings_15',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]], + ['strings_14',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]], + ['strings_20were_20as_20easy_20to_20use_20as_20python_20strings_15',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]], ['strip_16',['strip',['../classpcs_1_1_cpp_string_t.html#a02919129cdf158e75eae1e9815a071bf',1,'pcs::CppStringT::strip(const CppStringT &removedchars) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a12bc043347f555b4701e0c70d972058d',1,'pcs::CppStringT::strip() const noexcept']]], ['substr_17',['substr',['../classpcs_1_1_cpp_string_t.html#a9debc70420a3fbc7722e3111aeccd819',1,'pcs::CppStringT']]], ['swap_5fcase_18',['swap_case',['../namespacepcs.html#ac6e0b881e35c04e9b5bbe6e8b17ee1a7',1,'pcs']]], diff --git a/cpp-strings/html/search/all_13.js b/documentation/search/all_13.js similarity index 95% rename from cpp-strings/html/search/all_13.js rename to documentation/search/all_13.js index 46d2dc7..43e40ba 100644 --- a/cpp-strings/html/search/all_13.js +++ b/documentation/search/all_13.js @@ -1,7 +1,7 @@ var searchData= [ ['title_0',['title',['../classpcs_1_1_cpp_string_t.html#a179634aafb049e8604ca78f813684a28',1,'pcs::CppStringT']]], - ['to_20use_20as_20python_20strings_1',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]], + ['to_20use_20as_20python_20strings_1',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]], ['to_5flower_2',['to_lower',['../namespacepcs.html#a965f285db4253ce86ed59fccc2e8be61',1,'pcs']]], ['to_5flower_3c_20char_20_3e_3',['to_lower< char >',['../namespacepcs.html#a4c4164fedd9cb659873a980fa855f4a2',1,'pcs']]], ['to_5flower_3c_20wchar_5ft_20_3e_4',['to_lower< wchar_t >',['../namespacepcs.html#ab097a99126055ab4c843eb6efb573bb1',1,'pcs']]], diff --git a/documentation/search/all_14.js b/documentation/search/all_14.js new file mode 100644 index 0000000..c8b2e39 --- /dev/null +++ b/documentation/search/all_14.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['upper_0',['upper',['../classpcs_1_1_cpp_string_t.html#a689d2de98f28d131bb0c8b3c87f2f120',1,'pcs::CppStringT::upper() noexcept'],['../classpcs_1_1_cpp_string_t.html#af5ff8cdba1d90516915e20f93567a9a9',1,'pcs::CppStringT::upper(const value_type ch) noexcept']]], + ['use_20as_20python_20strings_1',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]] +]; diff --git a/documentation/search/all_15.js b/documentation/search/all_15.js new file mode 100644 index 0000000..78dfefc --- /dev/null +++ b/documentation/search/all_15.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['were_20as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]], + ['what_20if_20c_20strings_20were_20as_20easy_20to_20use_20as_20python_20strings_1',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]] +]; diff --git a/cpp-strings/html/search/all_16.js b/documentation/search/all_16.js similarity index 100% rename from cpp-strings/html/search/all_16.js rename to documentation/search/all_16.js diff --git a/cpp-strings/html/search/functions_f.js b/documentation/search/all_17.js similarity index 100% rename from cpp-strings/html/search/functions_f.js rename to documentation/search/all_17.js diff --git a/cpp-strings/html/search/functions_2.js b/documentation/search/all_2.js similarity index 100% rename from cpp-strings/html/search/functions_2.js rename to documentation/search/all_2.js diff --git a/cpp-strings/html/search/all_8.js b/documentation/search/all_3.js similarity index 100% rename from cpp-strings/html/search/all_8.js rename to documentation/search/all_3.js diff --git a/cpp-strings/html/search/all_9.js b/documentation/search/all_4.js similarity index 100% rename from cpp-strings/html/search/all_9.js rename to documentation/search/all_4.js diff --git a/cpp-strings/html/search/functions_5.js b/documentation/search/all_5.js similarity index 100% rename from cpp-strings/html/search/functions_5.js rename to documentation/search/all_5.js diff --git a/cpp-strings/html/search/all_b.js b/documentation/search/all_6.js similarity index 100% rename from cpp-strings/html/search/all_b.js rename to documentation/search/all_6.js diff --git a/cpp-strings/html/search/functions_7.js b/documentation/search/all_7.js similarity index 100% rename from cpp-strings/html/search/functions_7.js rename to documentation/search/all_7.js diff --git a/cpp-strings/html/search/all_e.js b/documentation/search/all_8.js similarity index 100% rename from cpp-strings/html/search/all_e.js rename to documentation/search/all_8.js diff --git a/cpp-strings/html/search/all_f.js b/documentation/search/all_9.js similarity index 100% rename from cpp-strings/html/search/all_f.js rename to documentation/search/all_9.js diff --git a/documentation/search/all_a.js b/documentation/search/all_a.js new file mode 100644 index 0000000..8cb9ee8 --- /dev/null +++ b/documentation/search/all_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['partition_0',['partition',['../classpcs_1_1_cpp_string_t.html#ac5f88b0fc1f33cda23c30cb1f3bc560f',1,'pcs::CppStringT']]], + ['pcs_1',['pcs',['../namespacepcs.html',1,'']]] +]; diff --git a/cpp-strings/html/search/functions_a.js b/documentation/search/all_b.js similarity index 100% rename from cpp-strings/html/search/functions_a.js rename to documentation/search/all_b.js diff --git a/documentation/search/all_c.js b/documentation/search/all_c.js new file mode 100644 index 0000000..338902b --- /dev/null +++ b/documentation/search/all_c.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['slice_0',['Slice',['../classpcs_1_1_slice.html',1,'pcs::Slice< IntT >'],['../classpcs_1_1_slice.html#ab51c3b03351e495729545f2fdaebb888',1,'pcs::Slice::Slice()']]], + ['split_1',['split',['../classpcs_1_1_cpp_string_t.html#a7ca47096b03baa0091c3b0349d210931',1,'pcs::CppStringT::split() noexcept'],['../classpcs_1_1_cpp_string_t.html#acf4d923cfed55cfd90cf12651ce0ac3d',1,'pcs::CppStringT::split(const CppStringT &sep) noexcept'],['../classpcs_1_1_cpp_string_t.html#a8fa2afe84d7fc26f96bbd55f4266df2a',1,'pcs::CppStringT::split(const size_type maxsplit) noexcept'],['../classpcs_1_1_cpp_string_t.html#a55a3fa32de834f644ac28d7c2495fa77',1,'pcs::CppStringT::split(const CppStringT &sep, const size_type maxsplit) noexcept']]], + ['splitlines_2',['splitlines',['../classpcs_1_1_cpp_string_t.html#a0bd53df14569c307b5ca50a2e1e62960',1,'pcs::CppStringT']]], + ['start_3',['start',['../classpcs_1_1_slice.html#a5280a9d6974217c94de5d9027e10d4e1',1,'pcs::Slice']]], + ['startslice_4',['StartSlice',['../structpcs_1_1_start_slice.html',1,'pcs::StartSlice< IntT >'],['../structpcs_1_1_start_slice.html#ae435a090e0d93fe221cab4822e352886',1,'pcs::StartSlice::StartSlice()']]], + ['startstepslice_5',['StartStepSlice',['../structpcs_1_1_start_step_slice.html',1,'pcs::StartStepSlice< IntT >'],['../structpcs_1_1_start_step_slice.html#a438eef8b248cc00ed48afda08aff6d4c',1,'pcs::StartStepSlice::StartStepSlice()']]], + ['startstopslice_6',['StartStopSlice',['../structpcs_1_1_start_stop_slice.html',1,'pcs::StartStopSlice< IntT >'],['../structpcs_1_1_start_stop_slice.html#a7c8ad9cb9d63fb9d56b3dbc9647297b4',1,'pcs::StartStopSlice::StartStopSlice()']]], + ['startswith_7',['startswith',['../classpcs_1_1_cpp_string_t.html#a5a131c385a01ccc5410d4cffa55cf700',1,'pcs::CppStringT::startswith(const CppStringT &prefix, const size_type start, const size_type end) const noexcept'],['../classpcs_1_1_cpp_string_t.html#ad2cfcc7bd22736ebd9f91f04e6a42f8c',1,'pcs::CppStringT::startswith(const CppStringT &prefix, const size_type start) const noexcept'],['../classpcs_1_1_cpp_string_t.html#ae2f755ae7903586a2086b7b7f943d96e',1,'pcs::CppStringT::startswith(const CppStringT &prefix) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a326eb96e19c3559a84af86ff1bf54aa4',1,'pcs::CppStringT::startswith(const std::initializer_list< CppStringT > &prefixes, const size_type start, const size_type end) const noexcept']]], + ['startswith_5fn_8',['startswith_n',['../classpcs_1_1_cpp_string_t.html#a3b7955f9c7f9452a6a025caaaf0e6d73',1,'pcs::CppStringT::startswith_n(const CppStringT &prefix, const size_type start, const size_type count) const noexcept'],['../classpcs_1_1_cpp_string_t.html#ae0865e2c7f8a4871804bf71c1c982dc6',1,'pcs::CppStringT::startswith_n(const CppStringT &prefix, const size_type count) const noexcept'],['../classpcs_1_1_cpp_string_t.html#ab2b293c5f1b55af52ceb75b8f7e4d42e',1,'pcs::CppStringT::startswith_n(const std::initializer_list< CppStringT > &prefix, const size_type start, const size_type count) const noexcept']]], + ['step_9',['step',['../classpcs_1_1_slice.html#a55f046a5343a6ea1bbff8686d2e72d78',1,'pcs::Slice']]], + ['stepslice_10',['StepSlice',['../structpcs_1_1_step_slice.html',1,'pcs::StepSlice< IntT >'],['../structpcs_1_1_step_slice.html#ad24accb58329f71457fbaf00fbbbf874',1,'pcs::StepSlice::StepSlice()']]], + ['stop_11',['stop',['../classpcs_1_1_slice.html#a0fed0ac66885187eb64d1982e0461916',1,'pcs::Slice']]], + ['stopslice_12',['StopSlice',['../structpcs_1_1_stop_slice.html',1,'pcs::StopSlice< IntT >'],['../structpcs_1_1_stop_slice.html#a9d59c11b1bc398b71abc59b4071da379',1,'pcs::StopSlice::StopSlice()']]], + ['stopstepslice_13',['StopStepSlice',['../structpcs_1_1_stop_step_slice.html',1,'pcs::StopStepSlice< IntT >'],['../structpcs_1_1_stop_step_slice.html#a86288ad6b535b8b4d522e8173511c639',1,'pcs::StopStepSlice::StopStepSlice()']]], + ['strip_14',['strip',['../classpcs_1_1_cpp_string_t.html#a02919129cdf158e75eae1e9815a071bf',1,'pcs::CppStringT::strip(const CppStringT &removedchars) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a12bc043347f555b4701e0c70d972058d',1,'pcs::CppStringT::strip() const noexcept']]], + ['substr_15',['substr',['../classpcs_1_1_cpp_string_t.html#a9debc70420a3fbc7722e3111aeccd819',1,'pcs::CppStringT']]], + ['swap_5fcase_16',['swap_case',['../namespacepcs.html#ac6e0b881e35c04e9b5bbe6e8b17ee1a7',1,'pcs']]], + ['swapcase_17',['swapcase',['../classpcs_1_1_cpp_string_t.html#a6ab02b4d1c8093a5dfc089a45427f63c',1,'pcs::CppStringT']]] +]; diff --git a/documentation/search/all_d.js b/documentation/search/all_d.js new file mode 100644 index 0000000..e86110a --- /dev/null +++ b/documentation/search/all_d.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['title_0',['title',['../classpcs_1_1_cpp_string_t.html#a179634aafb049e8604ca78f813684a28',1,'pcs::CppStringT']]], + ['to_5flower_1',['to_lower',['../namespacepcs.html#a965f285db4253ce86ed59fccc2e8be61',1,'pcs']]], + ['to_5flower_3c_20char_20_3e_2',['to_lower< char >',['../namespacepcs.html#a4c4164fedd9cb659873a980fa855f4a2',1,'pcs']]], + ['to_5flower_3c_20wchar_5ft_20_3e_3',['to_lower< wchar_t >',['../namespacepcs.html#ab097a99126055ab4c843eb6efb573bb1',1,'pcs']]], + ['to_5fupper_4',['to_upper',['../namespacepcs.html#a607c82cc94f2b6473d8391334eed8c14',1,'pcs']]], + ['to_5fupper_3c_20char_20_3e_5',['to_upper< char >',['../namespacepcs.html#ab823c7be920affd05f96a6ad8b99accf',1,'pcs']]], + ['to_5fupper_3c_20wchar_5ft_20_3e_6',['to_upper< wchar_t >',['../namespacepcs.html#aaf8dcc64819cbf8631fc63e0dd522811',1,'pcs']]], + ['translate_7',['translate',['../classpcs_1_1_cpp_string_t.html#a2a8c1e78b93da9a0abe471c7a8d85090',1,'pcs::CppStringT']]], + ['transtable_8',['TransTable',['../classpcs_1_1_cpp_string_t_1_1_trans_table.html',1,'pcs::CppStringT< CharT, TraitsT, AllocatorT >::TransTable'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#a1fea49a165ebb7cda36c1bfdcbe95ee0',1,'pcs::CppStringT::TransTable::TransTable(const std::map< key_type, value_type > trans_table)'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#a5efa34c2e8b016458388693a7ab8f590',1,'pcs::CppStringT::TransTable::TransTable(const CppStringT &keys, const CppStringT &values)'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#aa99c6a9fafac1361cd8a0fc4578fa084',1,'pcs::CppStringT::TransTable::TransTable(const CppStringT &keys, const CppStringT &values, const CppStringT &not_translated)'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#aae6cedd7e9c8409e76787c910476813e',1,'pcs::CppStringT::TransTable::TransTable(const CppStringT &keys, const std::initializer_list< CppStringT > &values)'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#abf0efc2e493b5c0347327b7c1f175ed8',1,'pcs::CppStringT::TransTable::TransTable(const CppStringT &keys, const std::initializer_list< CppStringT > values, const CppStringT &not_translated)'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#a9d7651fe71544575150ebc08022cb885',1,'pcs::CppStringT::TransTable::TransTable(const CharT *keys, const CharT *values)'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#a78d8ac95a740d405c761c73166c9b787',1,'pcs::CppStringT::TransTable::TransTable(const CharT *keys, const CharT *values, const CharT *not_translated)'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#a551b96c6c0ab2bf9183de0bfcc6770a2',1,'pcs::CppStringT::TransTable::TransTable(KeyIt first_key, KeyIt last_key, ValueIt first_value, ValueIt last_value)'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#a1c10bb78e74942f88247cde65a03d557',1,'pcs::CppStringT::TransTable::TransTable(Key1It first_key, Key1It last_key, ValueIt first_value, ValueIt last_value, Key2It first_not_translated, Key2It last_not_translated)'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#a21791e46266edb8eea13876559b352a2',1,'pcs::CppStringT::TransTable::TransTable(const StringViewLike &keys, const StringViewLike &values)'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#a7da38829b171a7a9147b43086e067454',1,'pcs::CppStringT::TransTable::TransTable() noexcept=default'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#a69a3ab2775d7e6537528a3eba3c4134a',1,'pcs::CppStringT::TransTable::TransTable(const TransTable &) noexcept=default'],['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#aa9182c3323cdba7f6dd30bfa56ebb8fe',1,'pcs::CppStringT::TransTable::TransTable(TransTable &&) noexcept=default']]] +]; diff --git a/cpp-strings/html/search/functions_d.js b/documentation/search/all_e.js similarity index 100% rename from cpp-strings/html/search/functions_d.js rename to documentation/search/all_e.js diff --git a/cpp-strings/html/search/functions_e.js b/documentation/search/all_f.js similarity index 100% rename from cpp-strings/html/search/functions_e.js rename to documentation/search/all_f.js diff --git a/cpp-strings/html/search/classes_0.js b/documentation/search/classes_0.js similarity index 100% rename from cpp-strings/html/search/classes_0.js rename to documentation/search/classes_0.js diff --git a/cpp-strings/html/search/classes_1.js b/documentation/search/classes_1.js similarity index 100% rename from cpp-strings/html/search/classes_1.js rename to documentation/search/classes_1.js diff --git a/cpp-strings/html/search/classes_2.js b/documentation/search/classes_2.js similarity index 100% rename from cpp-strings/html/search/classes_2.js rename to documentation/search/classes_2.js diff --git a/cpp-strings/html/search/classes_3.js b/documentation/search/classes_3.js similarity index 100% rename from cpp-strings/html/search/classes_3.js rename to documentation/search/classes_3.js diff --git a/cpp-strings/html/search/functions_0.js b/documentation/search/functions_0.js similarity index 100% rename from cpp-strings/html/search/functions_0.js rename to documentation/search/functions_0.js diff --git a/cpp-strings/html/search/functions_1.js b/documentation/search/functions_1.js similarity index 100% rename from cpp-strings/html/search/functions_1.js rename to documentation/search/functions_1.js diff --git a/cpp-strings/html/search/all_7.js b/documentation/search/functions_2.js similarity index 77% rename from cpp-strings/html/search/all_7.js rename to documentation/search/functions_2.js index 69d5fd0..d88008c 100644 --- a/cpp-strings/html/search/all_7.js +++ b/documentation/search/functions_2.js @@ -1,8 +1,7 @@ var searchData= [ - ['easy_20to_20use_20as_20python_20strings_0',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]], - ['end_1',['end',['../classpcs_1_1_slice.html#aee5b0e0110ef1ee32763da9b2386b59c',1,'pcs::Slice']]], - ['endswith_2',['endswith',['../classpcs_1_1_cpp_string_t.html#a42f1e87d7f1903536ee79aa058d5c867',1,'pcs::CppStringT::endswith(const CppStringT &suffix, const size_type start, const size_type end) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a6b23210d7d5eb07c9f942d62cc76b05e',1,'pcs::CppStringT::endswith(const CppStringT &suffix, const size_type end) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a3e9da0bfa54e84420e81668f6ce7f52c',1,'pcs::CppStringT::endswith(const CppStringT &suffix) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a87b25fce2a05421efd718c599a784a09',1,'pcs::CppStringT::endswith(const std::initializer_list< CppStringT > &suffixes, const size_type start, const size_type end) const noexcept']]], - ['endswith_5fn_3',['endswith_n',['../classpcs_1_1_cpp_string_t.html#a7eca5636b598c6fc107452ddd04a2f17',1,'pcs::CppStringT::endswith_n(const CppStringT &suffix, const size_type start, const size_type count) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a619935926ef961883e9bbd92b2fc23bd',1,'pcs::CppStringT::endswith_n(const CppStringT &suffix, const size_type count) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a4fd91047ab0126c823aa391a699e03bf',1,'pcs::CppStringT::endswith_n(const std::initializer_list< CppStringT > &suffixes, const size_type start, const size_type count) const noexcept']]], - ['expand_5ftabs_4',['expand_tabs',['../classpcs_1_1_cpp_string_t.html#a2cc04d5062162ff5f7b6111d6f1e78e8',1,'pcs::CppStringT']]] + ['end_0',['end',['../classpcs_1_1_slice.html#aee5b0e0110ef1ee32763da9b2386b59c',1,'pcs::Slice']]], + ['endswith_1',['endswith',['../classpcs_1_1_cpp_string_t.html#a42f1e87d7f1903536ee79aa058d5c867',1,'pcs::CppStringT::endswith(const CppStringT &suffix, const size_type start, const size_type end) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a6b23210d7d5eb07c9f942d62cc76b05e',1,'pcs::CppStringT::endswith(const CppStringT &suffix, const size_type end) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a3e9da0bfa54e84420e81668f6ce7f52c',1,'pcs::CppStringT::endswith(const CppStringT &suffix) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a87b25fce2a05421efd718c599a784a09',1,'pcs::CppStringT::endswith(const std::initializer_list< CppStringT > &suffixes, const size_type start, const size_type end) const noexcept']]], + ['endswith_5fn_2',['endswith_n',['../classpcs_1_1_cpp_string_t.html#a7eca5636b598c6fc107452ddd04a2f17',1,'pcs::CppStringT::endswith_n(const CppStringT &suffix, const size_type start, const size_type count) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a619935926ef961883e9bbd92b2fc23bd',1,'pcs::CppStringT::endswith_n(const CppStringT &suffix, const size_type count) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a4fd91047ab0126c823aa391a699e03bf',1,'pcs::CppStringT::endswith_n(const std::initializer_list< CppStringT > &suffixes, const size_type start, const size_type count) const noexcept']]], + ['expand_5ftabs_3',['expand_tabs',['../classpcs_1_1_cpp_string_t.html#a2cc04d5062162ff5f7b6111d6f1e78e8',1,'pcs::CppStringT']]] ]; diff --git a/cpp-strings/html/search/functions_3.js b/documentation/search/functions_3.js similarity index 100% rename from cpp-strings/html/search/functions_3.js rename to documentation/search/functions_3.js diff --git a/cpp-strings/html/search/functions_4.js b/documentation/search/functions_4.js similarity index 100% rename from cpp-strings/html/search/functions_4.js rename to documentation/search/functions_4.js diff --git a/documentation/search/functions_5.js b/documentation/search/functions_5.js new file mode 100644 index 0000000..dbd8f90 --- /dev/null +++ b/documentation/search/functions_5.js @@ -0,0 +1,49 @@ +var searchData= +[ + ['index_0',['index',['../classpcs_1_1_cpp_string_t.html#a277a2b8a3b93951ccb94b6bf39daa582',1,'pcs::CppStringT']]], + ['index_5fn_1',['index_n',['../classpcs_1_1_cpp_string_t.html#aee94d4b52483021051b168e776b18569',1,'pcs::CppStringT::index_n(const CppStringT &sub, const size_type start, const size_type count) const'],['../classpcs_1_1_cpp_string_t.html#a19a51054b824add817f30c5ff03effe7',1,'pcs::CppStringT::index_n(const CppStringT &sub, const size_type count) const']]], + ['is_5falpha_2',['is_alpha',['../namespacepcs.html#a40bc3d234e3c737f34d267151ca62014',1,'pcs']]], + ['is_5falpha_3c_20char_20_3e_3',['is_alpha< char >',['../namespacepcs.html#ade5b26313fc856bb882109d6945629b8',1,'pcs']]], + ['is_5falpha_3c_20wchar_5ft_20_3e_4',['is_alpha< wchar_t >',['../namespacepcs.html#a069625790af3ecf05a424c2c53eabfc0',1,'pcs']]], + ['is_5fascii_5',['is_ascii',['../namespacepcs.html#ac7822fd0c570f69d597936a24c38ba2a',1,'pcs']]], + ['is_5fdecimal_6',['is_decimal',['../namespacepcs.html#a9f0ba4e85fc273fad1a8b489f3be7fa8',1,'pcs']]], + ['is_5fdecimal_3c_20char_20_3e_7',['is_decimal< char >',['../namespacepcs.html#a28f77929d599a862403a4471f6b73fc3',1,'pcs']]], + ['is_5fdecimal_3c_20wchar_5ft_20_3e_8',['is_decimal< wchar_t >',['../namespacepcs.html#a60a2017b25d3d06b83e72f5ed5a93d09',1,'pcs']]], + ['is_5fdigit_9',['is_digit',['../namespacepcs.html#a52b12f8beb4ab7d8b819ca24180e08d1',1,'pcs']]], + ['is_5fdigit_3c_20char_20_3e_10',['is_digit< char >',['../namespacepcs.html#af7c58514e3378a219904f22eb22e9072',1,'pcs']]], + ['is_5fdigit_3c_20wchar_5ft_20_3e_11',['is_digit< wchar_t >',['../namespacepcs.html#a01c6093b1a8ef52114f799635ff930d5',1,'pcs']]], + ['is_5fid_5fcontinue_12',['is_id_continue',['../namespacepcs.html#aef0240331a343bb1ad13eb613ca93fa4',1,'pcs']]], + ['is_5fid_5fstart_13',['is_id_start',['../namespacepcs.html#abfda7874fe5b1f72c1c5a9a04d5c7e42',1,'pcs']]], + ['is_5flower_14',['is_lower',['../namespacepcs.html#aedd570e9ffa0572d56fce5085594bdbb',1,'pcs']]], + ['is_5flower_3c_20char_20_3e_15',['is_lower< char >',['../namespacepcs.html#a29893984c95e53a6efe01f74c2dcc03a',1,'pcs']]], + ['is_5flower_3c_20wchar_5ft_20_3e_16',['is_lower< wchar_t >',['../namespacepcs.html#ad1d1b13c16ce784055e93af9fa34fb5c',1,'pcs']]], + ['is_5fnumeric_17',['is_numeric',['../namespacepcs.html#af1b60c1081e8bc3b4cd91fbe240e9b87',1,'pcs']]], + ['is_5fnumeric_3c_20char_20_3e_18',['is_numeric< char >',['../namespacepcs.html#a242e3c28e3d47d19d70ab70d83e74d35',1,'pcs']]], + ['is_5fnumeric_3c_20wchar_5ft_20_3e_19',['is_numeric< wchar_t >',['../namespacepcs.html#acab7e7bb1ffd6e4ea1a8300b05478647',1,'pcs']]], + ['is_5fprintable_20',['is_printable',['../namespacepcs.html#a51cd6883557ab31a1e0c8e7b5ab27351',1,'pcs']]], + ['is_5fprintable_3c_20char_20_3e_21',['is_printable< char >',['../namespacepcs.html#a1cd19ec212e3ada992a8effb8d5d872d',1,'pcs']]], + ['is_5fprintable_3c_20wchar_5ft_20_3e_22',['is_printable< wchar_t >',['../namespacepcs.html#a30ed0cd7942d081369f78a49a029d8b1',1,'pcs']]], + ['is_5fpunctuation_23',['is_punctuation',['../namespacepcs.html#a02d340dd9c510eda0fbfed07a08d0792',1,'pcs']]], + ['is_5fpunctuation_3c_20char_20_3e_24',['is_punctuation< char >',['../namespacepcs.html#aa36d34c2227cde5856e8d61fa6e4af58',1,'pcs']]], + ['is_5fpunctuation_3c_20wchar_5ft_20_3e_25',['is_punctuation< wchar_t >',['../namespacepcs.html#a363e2bac9c403a623c5a410f7113edd3',1,'pcs']]], + ['is_5fspace_26',['is_space',['../namespacepcs.html#af089ceadbeaab27e12ad7f7edaaec72a',1,'pcs']]], + ['is_5fspace_3c_20char_20_3e_27',['is_space< char >',['../namespacepcs.html#a714cfa835ef4db5180309829ee8e27a9',1,'pcs']]], + ['is_5fspace_3c_20wchar_5ft_20_3e_28',['is_space< wchar_t >',['../namespacepcs.html#a57a765c6eb624107a2176a56cf2220a7',1,'pcs']]], + ['is_5fupper_29',['is_upper',['../namespacepcs.html#a8cb1cd0a1e39d92893eb7d22145f5d65',1,'pcs']]], + ['is_5fupper_3c_20char_20_3e_30',['is_upper< char >',['../namespacepcs.html#ac25d471fa1d838401335776ad4b6ead1',1,'pcs']]], + ['is_5fupper_3c_20wchar_5ft_20_3e_31',['is_upper< wchar_t >',['../namespacepcs.html#ab5077443809e9e4eb7bfa463728f398a',1,'pcs']]], + ['is_5fwords_5fsep_32',['is_words_sep',['../classpcs_1_1_cpp_string_t.html#a7565e4f2958e485ee2b0815be1faa0fa',1,'pcs::CppStringT']]], + ['isalnum_33',['isalnum',['../classpcs_1_1_cpp_string_t.html#a8fdf96ffee524d5b795c4aad26ece6ae',1,'pcs::CppStringT']]], + ['isalpha_34',['isalpha',['../classpcs_1_1_cpp_string_t.html#a447b7c58b4be1cdcba3aedf189acbce7',1,'pcs::CppStringT']]], + ['isascii_35',['isascii',['../classpcs_1_1_cpp_string_t.html#a710631f31d4c63c2117e8f4804fad3f2',1,'pcs::CppStringT']]], + ['isdecimal_36',['isdecimal',['../classpcs_1_1_cpp_string_t.html#a0b9d8a55419274e7cfd9badb4df704e3',1,'pcs::CppStringT']]], + ['isdigit_37',['isdigit',['../classpcs_1_1_cpp_string_t.html#a21316d00180377a3f48910a6c4c43b9c',1,'pcs::CppStringT']]], + ['isidentifier_38',['isidentifier',['../classpcs_1_1_cpp_string_t.html#a91f72d425dbb4c53a066338d30683246',1,'pcs::CppStringT']]], + ['islower_39',['islower',['../classpcs_1_1_cpp_string_t.html#ae4ff448bb92e6499c0a76f7d8e11126c',1,'pcs::CppStringT']]], + ['isnumeric_40',['isnumeric',['../classpcs_1_1_cpp_string_t.html#a578176ed20fd8da965afbcae1d99dd59',1,'pcs::CppStringT']]], + ['isprintable_41',['isprintable',['../classpcs_1_1_cpp_string_t.html#a6257a1832da550d4be32e9f272e51265',1,'pcs::CppStringT']]], + ['ispunctuation_42',['ispunctuation',['../classpcs_1_1_cpp_string_t.html#a2842f3a067fdc674709bed048d64e12d',1,'pcs::CppStringT']]], + ['isspace_43',['isspace',['../classpcs_1_1_cpp_string_t.html#a959a8f56bb536f2474ffc649a7ad3290',1,'pcs::CppStringT']]], + ['istitle_44',['istitle',['../classpcs_1_1_cpp_string_t.html#ad72611f339c2b9027a72fa26f25748c3',1,'pcs::CppStringT']]], + ['isupper_45',['isupper',['../classpcs_1_1_cpp_string_t.html#af2784cbe9655bb8e23fe90375d79e69c',1,'pcs::CppStringT']]] +]; diff --git a/cpp-strings/html/search/functions_6.js b/documentation/search/functions_6.js similarity index 100% rename from cpp-strings/html/search/functions_6.js rename to documentation/search/functions_6.js diff --git a/cpp-strings/html/search/all_c.js b/documentation/search/functions_7.js similarity index 50% rename from cpp-strings/html/search/all_c.js rename to documentation/search/functions_7.js index 49c383d..75c044b 100644 --- a/cpp-strings/html/search/all_c.js +++ b/documentation/search/functions_7.js @@ -1,9 +1,6 @@ var searchData= [ - ['latest_20release_20release_201_200_201_200_200_20229_202025_2007_0',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]], - ['library_20cpp_20strings_1',['Library cpp-strings',['../index.html',1,'']]], - ['license_2',['License',['../index.html#autotoc_md3',1,'']]], - ['ljust_3',['ljust',['../classpcs_1_1_cpp_string_t.html#aed96c44c384cab45342122cd7e2f02eb',1,'pcs::CppStringT']]], - ['lower_4',['lower',['../classpcs_1_1_cpp_string_t.html#ad5c765eaa85cb4a3e7a914d55a6a5175',1,'pcs::CppStringT::lower() noexcept'],['../classpcs_1_1_cpp_string_t.html#a6b1cfc9713e55a48f036ed030bedc654',1,'pcs::CppStringT::lower(const value_type ch) noexcept']]], - ['lstrip_5',['lstrip',['../classpcs_1_1_cpp_string_t.html#aee6e48d5b478d5bab239f54523d23c15',1,'pcs::CppStringT::lstrip(const CppStringT &removedchars) const noexcept'],['../classpcs_1_1_cpp_string_t.html#ac1ad3018d38f291e6debad8d2de92be1',1,'pcs::CppStringT::lstrip() const noexcept']]] + ['ljust_0',['ljust',['../classpcs_1_1_cpp_string_t.html#aed96c44c384cab45342122cd7e2f02eb',1,'pcs::CppStringT']]], + ['lower_1',['lower',['../classpcs_1_1_cpp_string_t.html#ad5c765eaa85cb4a3e7a914d55a6a5175',1,'pcs::CppStringT::lower() noexcept'],['../classpcs_1_1_cpp_string_t.html#a6b1cfc9713e55a48f036ed030bedc654',1,'pcs::CppStringT::lower(const value_type ch) noexcept']]], + ['lstrip_2',['lstrip',['../classpcs_1_1_cpp_string_t.html#aee6e48d5b478d5bab239f54523d23c15',1,'pcs::CppStringT::lstrip(const CppStringT &removedchars) const noexcept'],['../classpcs_1_1_cpp_string_t.html#ac1ad3018d38f291e6debad8d2de92be1',1,'pcs::CppStringT::lstrip() const noexcept']]] ]; diff --git a/cpp-strings/html/search/functions_8.js b/documentation/search/functions_8.js similarity index 100% rename from cpp-strings/html/search/functions_8.js rename to documentation/search/functions_8.js diff --git a/cpp-strings/html/search/functions_9.js b/documentation/search/functions_9.js similarity index 100% rename from cpp-strings/html/search/functions_9.js rename to documentation/search/functions_9.js diff --git a/documentation/search/functions_a.js b/documentation/search/functions_a.js new file mode 100644 index 0000000..e610e4b --- /dev/null +++ b/documentation/search/functions_a.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['removeprefix_0',['removeprefix',['../classpcs_1_1_cpp_string_t.html#a058704b7f4538ec9e1798c5348d37c7a',1,'pcs::CppStringT']]], + ['removesuffix_1',['removesuffix',['../classpcs_1_1_cpp_string_t.html#ad6a8dc124ab8b7cab1cb328240763ed0',1,'pcs::CppStringT']]], + ['replace_2',['replace',['../classpcs_1_1_cpp_string_t.html#ad4f39683db649aa8a65907268c499f02',1,'pcs::CppStringT']]], + ['rfind_3',['rfind',['../classpcs_1_1_cpp_string_t.html#af363308ba741b267641e1aa35669d603',1,'pcs::CppStringT::rfind(const CppStringT &sub, const size_type start, const size_type end) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a9f43f20029596abc1362d1242e68e5db',1,'pcs::CppStringT::rfind(const CppStringT &sub, const size_type start) const noexcept'],['../classpcs_1_1_cpp_string_t.html#ac00bb6f7d74bfdde0d4cc247e78ab20e',1,'pcs::CppStringT::rfind(const CppStringT &sub) const noexcept']]], + ['rfind_5fn_4',['rfind_n',['../classpcs_1_1_cpp_string_t.html#a519a292eb3f0790d54a59a201f2d6410',1,'pcs::CppStringT::rfind_n(const CppStringT &sub, const size_type start, const size_type count) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a790f663f51dfe6e9e15d4f5f025bf107',1,'pcs::CppStringT::rfind_n(const CppStringT &sub, const size_type count) const noexcept']]], + ['rindex_5',['rindex',['../classpcs_1_1_cpp_string_t.html#a6693ec49258c6ac80a7875b3ebf3c916',1,'pcs::CppStringT::rindex(const CppStringT &sub, const size_type start, const size_type end) const'],['../classpcs_1_1_cpp_string_t.html#a2baca0ddff848de56a7b867f68d3efab',1,'pcs::CppStringT::rindex(const CppStringT &sub, const size_type start) const'],['../classpcs_1_1_cpp_string_t.html#a546105cc9a8a9d493979c30607092cf1',1,'pcs::CppStringT::rindex(const CppStringT &sub) const']]], + ['rindex_5fn_6',['rindex_n',['../classpcs_1_1_cpp_string_t.html#afc08a4e91b93710838c8f0d6234e057e',1,'pcs::CppStringT::rindex_n(const CppStringT &sub, const size_type start, const size_type count) const'],['../classpcs_1_1_cpp_string_t.html#ac3079cbecbdf4151e66f602f39ece836',1,'pcs::CppStringT::rindex_n(const CppStringT &sub, const size_type count) const']]], + ['rjust_7',['rjust',['../classpcs_1_1_cpp_string_t.html#a61fd4215938ec9f0fce1f885d6bb4a2b',1,'pcs::CppStringT']]], + ['rpartition_8',['rpartition',['../classpcs_1_1_cpp_string_t.html#a61674ee4e97038d82ea7ecc30b1761f6',1,'pcs::CppStringT']]], + ['rsplit_9',['rsplit',['../classpcs_1_1_cpp_string_t.html#a8111cd357773d304fbb496571d7ee6be',1,'pcs::CppStringT::rsplit() noexcept'],['../classpcs_1_1_cpp_string_t.html#a0419f46de6fa532372f3b97b4927ebab',1,'pcs::CppStringT::rsplit(const CppStringT &sep) noexcept'],['../classpcs_1_1_cpp_string_t.html#a3aa66706e268bd570a0084d70dff5cde',1,'pcs::CppStringT::rsplit(const size_type maxsplit) noexcept'],['../classpcs_1_1_cpp_string_t.html#ab0ace502f0b3026fefd2942a1e8a0456',1,'pcs::CppStringT::rsplit(const CppStringT &sep, const size_type maxsplit) noexcept']]], + ['rstrip_10',['rstrip',['../classpcs_1_1_cpp_string_t.html#a89e850d45d6dec167e763cf748a06971',1,'pcs::CppStringT::rstrip(const CppStringT &removedchars) const noexcept'],['../classpcs_1_1_cpp_string_t.html#a86f8c78b2eeb3541fb6b56b4f4ac237b',1,'pcs::CppStringT::rstrip() const noexcept']]] +]; diff --git a/cpp-strings/html/search/functions_b.js b/documentation/search/functions_b.js similarity index 100% rename from cpp-strings/html/search/functions_b.js rename to documentation/search/functions_b.js diff --git a/cpp-strings/html/search/functions_c.js b/documentation/search/functions_c.js similarity index 100% rename from cpp-strings/html/search/functions_c.js rename to documentation/search/functions_c.js diff --git a/cpp-strings/html/search/all_14.js b/documentation/search/functions_d.js similarity index 65% rename from cpp-strings/html/search/all_14.js rename to documentation/search/functions_d.js index 714c8b3..f09eceb 100644 --- a/cpp-strings/html/search/all_14.js +++ b/documentation/search/functions_d.js @@ -1,5 +1,4 @@ var searchData= [ - ['upper_0',['upper',['../classpcs_1_1_cpp_string_t.html#a689d2de98f28d131bb0c8b3c87f2f120',1,'pcs::CppStringT::upper() noexcept'],['../classpcs_1_1_cpp_string_t.html#af5ff8cdba1d90516915e20f93567a9a9',1,'pcs::CppStringT::upper(const value_type ch) noexcept']]], - ['use_20as_20python_20strings_1',['What if c++ strings where as easy to use as Python strings?',['../index.html#autotoc_md1',1,'']]] + ['upper_0',['upper',['../classpcs_1_1_cpp_string_t.html#a689d2de98f28d131bb0c8b3c87f2f120',1,'pcs::CppStringT::upper() noexcept'],['../classpcs_1_1_cpp_string_t.html#af5ff8cdba1d90516915e20f93567a9a9',1,'pcs::CppStringT::upper(const value_type ch) noexcept']]] ]; diff --git a/documentation/search/functions_e.js b/documentation/search/functions_e.js new file mode 100644 index 0000000..09848bb --- /dev/null +++ b/documentation/search/functions_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zfill_0',['zfill',['../classpcs_1_1_cpp_string_t.html#ad3d2b94f37325096205e399b95e9fc5d',1,'pcs::CppStringT']]] +]; diff --git a/documentation/search/functions_f.js b/documentation/search/functions_f.js new file mode 100644 index 0000000..d67d134 --- /dev/null +++ b/documentation/search/functions_f.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['_7eslice_0',['~Slice',['../classpcs_1_1_slice.html#abdb6694913ed37cf4efc5d85e990c7b5',1,'pcs::Slice']]], + ['_7estartslice_1',['~StartSlice',['../structpcs_1_1_start_slice.html#a6f792a61218b7598f8f6bb37dcdae56e',1,'pcs::StartSlice']]], + ['_7estartstepslice_2',['~StartStepSlice',['../structpcs_1_1_start_step_slice.html#adc0aae8a3849379742e23c4f3a3197a9',1,'pcs::StartStepSlice']]], + ['_7estartstopslice_3',['~StartStopSlice',['../structpcs_1_1_start_stop_slice.html#a95df964c79860a475a63da3e56301ea7',1,'pcs::StartStopSlice']]], + ['_7estepslice_4',['~StepSlice',['../structpcs_1_1_step_slice.html#a93892e4d8f153a06a65e0cd13ebfa949',1,'pcs::StepSlice']]], + ['_7estopslice_5',['~StopSlice',['../structpcs_1_1_stop_slice.html#a6e7e761a846ec00b1f24be9f83830f25',1,'pcs::StopSlice']]], + ['_7estopstepslice_6',['~StopStepSlice',['../structpcs_1_1_stop_step_slice.html#aa62d3d31f646766a6ea2ef3cd9f91491',1,'pcs::StopStepSlice']]], + ['_7etranstable_7',['~TransTable',['../classpcs_1_1_cpp_string_t_1_1_trans_table.html#abbbcd9cf0c3ac0a364864f734363dd4c',1,'pcs::CppStringT::TransTable']]] +]; diff --git a/cpp-strings/html/search/namespaces_0.js b/documentation/search/namespaces_0.js similarity index 100% rename from cpp-strings/html/search/namespaces_0.js rename to documentation/search/namespaces_0.js diff --git a/documentation/search/pages_0.js b/documentation/search/pages_0.js new file mode 100644 index 0000000..0c2600b --- /dev/null +++ b/documentation/search/pages_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['0_0',['Missing parts in Release 1.0',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md6',1,'']]], + ['0_201_200_202_20232_202025_2007_1',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]], + ['0_202_20232_202025_2007_2',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]], + ['07_3',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]] +]; diff --git a/documentation/search/pages_1.js b/documentation/search/pages_1.js new file mode 100644 index 0000000..f074ebd --- /dev/null +++ b/documentation/search/pages_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['1_200_0',['Missing parts in Release 1.0',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md6',1,'']]], + ['1_200_201_200_202_20232_202025_2007_1',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]], + ['1_200_202_20232_202025_2007_2',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]] +]; diff --git a/documentation/search/pages_2.js b/documentation/search/pages_2.js new file mode 100644 index 0000000..82f6ad9 --- /dev/null +++ b/documentation/search/pages_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['2_20232_202025_2007_0',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]], + ['2025_2007_1',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]], + ['232_202025_2007_2',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]] +]; diff --git a/documentation/search/pages_3.js b/documentation/search/pages_3.js new file mode 100644 index 0000000..d5e0ef2 --- /dev/null +++ b/documentation/search/pages_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]], + ['as_20python_20strings_1',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]] +]; diff --git a/documentation/search/pages_4.js b/documentation/search/pages_4.js new file mode 100644 index 0000000..c94e101 --- /dev/null +++ b/documentation/search/pages_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['c_20strings_20were_20as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]] +]; diff --git a/documentation/search/pages_5.js b/documentation/search/pages_5.js new file mode 100644 index 0000000..a947933 --- /dev/null +++ b/documentation/search/pages_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['documentation_0',['Documentation',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md8',1,'']]] +]; diff --git a/documentation/search/pages_6.js b/documentation/search/pages_6.js new file mode 100644 index 0000000..67aef50 --- /dev/null +++ b/documentation/search/pages_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['easy_20to_20use_20as_20python_20strings_0',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]] +]; diff --git a/documentation/search/pages_7.js b/documentation/search/pages_7.js new file mode 100644 index 0000000..b4a53d4 --- /dev/null +++ b/documentation/search/pages_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['if_20c_20strings_20were_20as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]], + ['in_20release_201_200_1',['Missing parts in Release 1.0',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md6',1,'']]], + ['intro_2',['Intro',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md3',1,'']]] +]; diff --git a/documentation/search/pages_8.js b/documentation/search/pages_8.js new file mode 100644 index 0000000..c7e1aca --- /dev/null +++ b/documentation/search/pages_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['latest_20release_20release_201_200_201_200_202_20232_202025_2007_0',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]], + ['license_1',['License',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md2',1,'']]] +]; diff --git a/documentation/search/pages_9.js b/documentation/search/pages_9.js new file mode 100644 index 0000000..7467650 --- /dev/null +++ b/documentation/search/pages_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['missing_20parts_20in_20release_201_200_0',['Missing parts in Release 1.0',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md6',1,'']]] +]; diff --git a/documentation/search/pages_a.js b/documentation/search/pages_a.js new file mode 100644 index 0000000..fe4dd52 --- /dev/null +++ b/documentation/search/pages_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['parts_20in_20release_201_200_0',['Missing parts in Release 1.0',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md6',1,'']]], + ['python_20strings_1',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]] +]; diff --git a/documentation/search/pages_b.js b/documentation/search/pages_b.js new file mode 100644 index 0000000..cb1c625 --- /dev/null +++ b/documentation/search/pages_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['release_201_200_0',['Missing parts in Release 1.0',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md6',1,'']]], + ['release_201_200_201_200_202_20232_202025_2007_1',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]], + ['release_20release_201_200_201_200_202_20232_202025_2007_2',['Latest Release - Release 1.0 (1.0.2.232) 2025/07',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md5',1,'']]] +]; diff --git a/documentation/search/pages_c.js b/documentation/search/pages_c.js new file mode 100644 index 0000000..8dfeb5d --- /dev/null +++ b/documentation/search/pages_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['strings_0',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]], + ['strings_20were_20as_20easy_20to_20use_20as_20python_20strings_1',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]] +]; diff --git a/documentation/search/pages_d.js b/documentation/search/pages_d.js new file mode 100644 index 0000000..9ed4826 --- /dev/null +++ b/documentation/search/pages_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['to_20use_20as_20python_20strings_0',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]] +]; diff --git a/documentation/search/pages_e.js b/documentation/search/pages_e.js new file mode 100644 index 0000000..2fa32cb --- /dev/null +++ b/documentation/search/pages_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['use_20as_20python_20strings_0',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]] +]; diff --git a/documentation/search/pages_f.js b/documentation/search/pages_f.js new file mode 100644 index 0000000..78dfefc --- /dev/null +++ b/documentation/search/pages_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['were_20as_20easy_20to_20use_20as_20python_20strings_0',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]], + ['what_20if_20c_20strings_20were_20as_20easy_20to_20use_20as_20python_20strings_1',['What if c++ strings were as easy to use as Python strings?',['../E:/GitHub/pythonic-cpp-strings/cpp-strings/README.md#autotoc_md0',1,'']]] +]; diff --git a/cpp-strings/html/search/search.css b/documentation/search/search.css similarity index 100% rename from cpp-strings/html/search/search.css rename to documentation/search/search.css diff --git a/cpp-strings/html/search/search.js b/documentation/search/search.js similarity index 100% rename from cpp-strings/html/search/search.js rename to documentation/search/search.js diff --git a/cpp-strings/html/search/searchdata.js b/documentation/search/searchdata.js similarity index 68% rename from cpp-strings/html/search/searchdata.js rename to documentation/search/searchdata.js index bf2a899..6edd231 100644 --- a/cpp-strings/html/search/searchdata.js +++ b/documentation/search/searchdata.js @@ -1,11 +1,10 @@ var indexSectionsWithContent = { - 0: "012abcdefgijlmnoprstuwz~", + 0: "bcefgijlnoprstuz~", 1: "cnst", 2: "p", 3: "bcefgijloprstuz~", - 4: "c", - 5: "012acdeilmprstuw" + 4: "c" }; var indexSectionNames = @@ -14,8 +13,7 @@ var indexSectionNames = 1: "classes", 2: "namespaces", 3: "functions", - 4: "typedefs", - 5: "pages" + 4: "typedefs" }; var indexSectionLabels = @@ -24,7 +22,6 @@ var indexSectionLabels = 1: "Classes", 2: "Namespaces", 3: "Functions", - 4: "Typedefs", - 5: "Pages" + 4: "Typedefs" }; diff --git a/cpp-strings/html/search/typedefs_0.js b/documentation/search/typedefs_0.js similarity index 100% rename from cpp-strings/html/search/typedefs_0.js rename to documentation/search/typedefs_0.js diff --git a/cpp-strings/html/structpcs_1_1_start_slice-members.html b/documentation/structpcs_1_1_start_slice-members.html similarity index 99% rename from cpp-strings/html/structpcs_1_1_start_slice-members.html rename to documentation/structpcs_1_1_start_slice-members.html index 248e430..3cb0508 100644 --- a/cpp-strings/html/structpcs_1_1_start_slice-members.html +++ b/documentation/structpcs_1_1_start_slice-members.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/structpcs_1_1_start_slice.html b/documentation/structpcs_1_1_start_slice.html similarity index 98% rename from cpp-strings/html/structpcs_1_1_start_slice.html rename to documentation/structpcs_1_1_start_slice.html index 7371c27..9eba63d 100644 --- a/cpp-strings/html/structpcs_1_1_start_slice.html +++ b/documentation/structpcs_1_1_start_slice.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    @@ -93,7 +93,7 @@

    Base class for slices, with start, stop and step specified values. More...

    -

    #include <cppstrings.h>

    +

    #include <cppstrings.h>

    Inheritance diagram for pcs::StartSlice< IntT >:
    @@ -212,7 +212,7 @@

    cppstrings.h +
  • cppstrings.h
  • diff --git a/cpp-strings/html/structpcs_1_1_start_slice.js b/documentation/structpcs_1_1_start_slice.js similarity index 100% rename from cpp-strings/html/structpcs_1_1_start_slice.js rename to documentation/structpcs_1_1_start_slice.js diff --git a/cpp-strings/html/structpcs_1_1_start_slice.png b/documentation/structpcs_1_1_start_slice.png similarity index 100% rename from cpp-strings/html/structpcs_1_1_start_slice.png rename to documentation/structpcs_1_1_start_slice.png diff --git a/cpp-strings/html/structpcs_1_1_start_step_slice-members.html b/documentation/structpcs_1_1_start_step_slice-members.html similarity index 99% rename from cpp-strings/html/structpcs_1_1_start_step_slice-members.html rename to documentation/structpcs_1_1_start_step_slice-members.html index a525579..0df13cd 100644 --- a/cpp-strings/html/structpcs_1_1_start_step_slice-members.html +++ b/documentation/structpcs_1_1_start_step_slice-members.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/structpcs_1_1_start_step_slice.html b/documentation/structpcs_1_1_start_step_slice.html similarity index 98% rename from cpp-strings/html/structpcs_1_1_start_step_slice.html rename to documentation/structpcs_1_1_start_step_slice.html index b3885fe..b2c4196 100644 --- a/cpp-strings/html/structpcs_1_1_start_step_slice.html +++ b/documentation/structpcs_1_1_start_step_slice.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    @@ -93,7 +93,7 @@

    struct of slices with default step values More...

    -

    #include <cppstrings.h>

    +

    #include <cppstrings.h>

    Inheritance diagram for pcs::StartStepSlice< IntT >:
    @@ -216,7 +216,7 @@

    cppstrings.h +
  • cppstrings.h
  • diff --git a/cpp-strings/html/structpcs_1_1_start_step_slice.js b/documentation/structpcs_1_1_start_step_slice.js similarity index 100% rename from cpp-strings/html/structpcs_1_1_start_step_slice.js rename to documentation/structpcs_1_1_start_step_slice.js diff --git a/cpp-strings/html/structpcs_1_1_start_step_slice.png b/documentation/structpcs_1_1_start_step_slice.png similarity index 100% rename from cpp-strings/html/structpcs_1_1_start_step_slice.png rename to documentation/structpcs_1_1_start_step_slice.png diff --git a/cpp-strings/html/structpcs_1_1_start_stop_slice-members.html b/documentation/structpcs_1_1_start_stop_slice-members.html similarity index 99% rename from cpp-strings/html/structpcs_1_1_start_stop_slice-members.html rename to documentation/structpcs_1_1_start_stop_slice-members.html index 24e0401..b35dccd 100644 --- a/cpp-strings/html/structpcs_1_1_start_stop_slice-members.html +++ b/documentation/structpcs_1_1_start_stop_slice-members.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/structpcs_1_1_start_stop_slice.html b/documentation/structpcs_1_1_start_stop_slice.html similarity index 98% rename from cpp-strings/html/structpcs_1_1_start_stop_slice.html rename to documentation/structpcs_1_1_start_stop_slice.html index e95b7ea..f72cd1d 100644 --- a/cpp-strings/html/structpcs_1_1_start_stop_slice.html +++ b/documentation/structpcs_1_1_start_stop_slice.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    @@ -93,7 +93,7 @@

    struct of slices with default start and stop values More...

    -

    #include <cppstrings.h>

    +

    #include <cppstrings.h>

    Inheritance diagram for pcs::StartStopSlice< IntT >:
    @@ -216,7 +216,7 @@

    cppstrings.h +
  • cppstrings.h
  • diff --git a/cpp-strings/html/structpcs_1_1_start_stop_slice.js b/documentation/structpcs_1_1_start_stop_slice.js similarity index 100% rename from cpp-strings/html/structpcs_1_1_start_stop_slice.js rename to documentation/structpcs_1_1_start_stop_slice.js diff --git a/cpp-strings/html/structpcs_1_1_start_stop_slice.png b/documentation/structpcs_1_1_start_stop_slice.png similarity index 100% rename from cpp-strings/html/structpcs_1_1_start_stop_slice.png rename to documentation/structpcs_1_1_start_stop_slice.png diff --git a/cpp-strings/html/structpcs_1_1_step_slice-members.html b/documentation/structpcs_1_1_step_slice-members.html similarity index 99% rename from cpp-strings/html/structpcs_1_1_step_slice-members.html rename to documentation/structpcs_1_1_step_slice-members.html index b18bdcd..6e28849 100644 --- a/cpp-strings/html/structpcs_1_1_step_slice-members.html +++ b/documentation/structpcs_1_1_step_slice-members.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/structpcs_1_1_step_slice.html b/documentation/structpcs_1_1_step_slice.html similarity index 98% rename from cpp-strings/html/structpcs_1_1_step_slice.html rename to documentation/structpcs_1_1_step_slice.html index 2d7053c..b2090e5 100644 --- a/cpp-strings/html/structpcs_1_1_step_slice.html +++ b/documentation/structpcs_1_1_step_slice.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    @@ -93,7 +93,7 @@

    struct of slices with default start and step values More...

    -

    #include <cppstrings.h>

    +

    #include <cppstrings.h>

    Inheritance diagram for pcs::StepSlice< IntT >:
    @@ -212,7 +212,7 @@

    cppstrings.h +
  • cppstrings.h
  • diff --git a/cpp-strings/html/structpcs_1_1_step_slice.js b/documentation/structpcs_1_1_step_slice.js similarity index 100% rename from cpp-strings/html/structpcs_1_1_step_slice.js rename to documentation/structpcs_1_1_step_slice.js diff --git a/cpp-strings/html/structpcs_1_1_step_slice.png b/documentation/structpcs_1_1_step_slice.png similarity index 100% rename from cpp-strings/html/structpcs_1_1_step_slice.png rename to documentation/structpcs_1_1_step_slice.png diff --git a/cpp-strings/html/structpcs_1_1_stop_slice-members.html b/documentation/structpcs_1_1_stop_slice-members.html similarity index 99% rename from cpp-strings/html/structpcs_1_1_stop_slice-members.html rename to documentation/structpcs_1_1_stop_slice-members.html index 76330c9..1587f05 100644 --- a/cpp-strings/html/structpcs_1_1_stop_slice-members.html +++ b/documentation/structpcs_1_1_stop_slice-members.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/structpcs_1_1_stop_slice.html b/documentation/structpcs_1_1_stop_slice.html similarity index 98% rename from cpp-strings/html/structpcs_1_1_stop_slice.html rename to documentation/structpcs_1_1_stop_slice.html index 20e4e1e..5977ffe 100644 --- a/cpp-strings/html/structpcs_1_1_stop_slice.html +++ b/documentation/structpcs_1_1_stop_slice.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    @@ -93,7 +93,7 @@

    struct of slices with default stop and step values More...

    -

    #include <cppstrings.h>

    +

    #include <cppstrings.h>

    Inheritance diagram for pcs::StopSlice< IntT >:
    @@ -212,7 +212,7 @@

    cppstrings.h +
  • cppstrings.h
  • diff --git a/cpp-strings/html/structpcs_1_1_stop_slice.js b/documentation/structpcs_1_1_stop_slice.js similarity index 100% rename from cpp-strings/html/structpcs_1_1_stop_slice.js rename to documentation/structpcs_1_1_stop_slice.js diff --git a/cpp-strings/html/structpcs_1_1_stop_slice.png b/documentation/structpcs_1_1_stop_slice.png similarity index 100% rename from cpp-strings/html/structpcs_1_1_stop_slice.png rename to documentation/structpcs_1_1_stop_slice.png diff --git a/cpp-strings/html/structpcs_1_1_stop_step_slice-members.html b/documentation/structpcs_1_1_stop_step_slice-members.html similarity index 99% rename from cpp-strings/html/structpcs_1_1_stop_step_slice-members.html rename to documentation/structpcs_1_1_stop_step_slice-members.html index f6f7e57..2ffd4af 100644 --- a/cpp-strings/html/structpcs_1_1_stop_step_slice-members.html +++ b/documentation/structpcs_1_1_stop_step_slice-members.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    diff --git a/cpp-strings/html/structpcs_1_1_stop_step_slice.html b/documentation/structpcs_1_1_stop_step_slice.html similarity index 98% rename from cpp-strings/html/structpcs_1_1_stop_step_slice.html rename to documentation/structpcs_1_1_stop_step_slice.html index 29a206a..b28cb04 100644 --- a/cpp-strings/html/structpcs_1_1_stop_step_slice.html +++ b/documentation/structpcs_1_1_stop_step_slice.html @@ -26,7 +26,7 @@ -
    cpp-strings 1.0.0 +
    cpp-strings 1.0.4
    Pythonic c++ strings
    @@ -93,7 +93,7 @@

    struct of slices with default stop values More...

    -

    #include <cppstrings.h>

    +

    #include <cppstrings.h>

    Inheritance diagram for pcs::StopStepSlice< IntT >:
    @@ -216,7 +216,7 @@

    cppstrings.h +
  • cppstrings.h
  • diff --git a/cpp-strings/html/structpcs_1_1_stop_step_slice.js b/documentation/structpcs_1_1_stop_step_slice.js similarity index 100% rename from cpp-strings/html/structpcs_1_1_stop_step_slice.js rename to documentation/structpcs_1_1_stop_step_slice.js diff --git a/cpp-strings/html/structpcs_1_1_stop_step_slice.png b/documentation/structpcs_1_1_stop_step_slice.png similarity index 100% rename from cpp-strings/html/structpcs_1_1_stop_step_slice.png rename to documentation/structpcs_1_1_stop_step_slice.png diff --git a/cpp-strings/html/tabs.css b/documentation/tabs.css similarity index 100% rename from cpp-strings/html/tabs.css rename to documentation/tabs.css