Skip to content

Commit 9f7733a

Browse files
committed
#224-generate doxygen documentation
Redone.
1 parent a3af07e commit 9f7733a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+290
-187
lines changed

cpp-strings/html/doxygen.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2442,7 +2442,7 @@ details[open]>summary::before {
24422442

24432443

24442444
html {
2445-
--timestamp: 'Wed Jul 16 2025'
2445+
--timestamp: 'Thu Jul 17 2025'
24462446
}
24472447
span.timestamp { content: ' '; }
24482448
span.timestamp:before { content: var(--timestamp); }

cpp-strings/html/doxygen_crawl.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,12 @@
150150
<a href="functions_func.html"/>
151151
<a href="hierarchy.html"/>
152152
<a href="index.html"/>
153-
<a href="index.html#autotoc_md2"/>
153+
<a href="index.html#autotoc_md1"/>
154154
<a href="index.html#autotoc_md3"/>
155-
<a href="index.html#autotoc_md5"/>
155+
<a href="index.html#autotoc_md4"/>
156+
<a href="index.html#autotoc_md6"/>
157+
<a href="index.html#autotoc_md7"/>
158+
<a href="index.html#autotoc_md9"/>
156159
<a href="namespacemembers.html"/>
157160
<a href="namespacemembers_func.html"/>
158161
<a href="namespacemembers_type.html"/>

cpp-strings/html/index.html

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
66
<meta name="generator" content="Doxygen 1.14.0"/>
77
<meta name="viewport" content="width=device-width, initial-scale=1"/>
8-
<title>cpp-strings: Library cpp-string</title>
8+
<title>cpp-strings: Library cpp-strings</title>
99
<link href="tabs.css" rel="stylesheet" type="text/css"/>
1010
<script type="text/javascript" src="jquery.js"></script>
1111
<script type="text/javascript" src="dynsections.js"></script>
@@ -86,12 +86,13 @@
8686
</div>
8787

8888
<div><div class="header">
89-
<div class="headertitle"><div class="title">Library cpp-string </div></div>
89+
<div class="headertitle"><div class="title">Library cpp-strings </div></div>
9090
</div><!--header-->
9191
<div class="contents">
9292
<div class="textblock"><p><a class="anchor" id="md__e_1_2_git_hub_2pythonic-cpp-strings_2_r_e_a_d_m_e"></a></p>
93-
<p><a href="https://github.com/schmouk/cpprandlib/license"><img src="http://img.shields.io/github/license/schmouk/cpp-strings.svg?style=plastic&amp;labelColor=blueviolet&amp;color=lightblue" alt="license" style="pointer-events: none;" class="inline"/></a> <a href="https://github.com/schmouk/cpprandlib/releases"><img src="http://img.shields.io/github/release/schmouk/cpp-strings.svg?style=plastic&amp;labelColor=blueviolet&amp;color=success" alt="Latest release" style="pointer-events: none;" class="inline"/></a> <img src="https://img.shields.io/badge/code_coverage-100%25-success?style=plastic&amp;labelColor=blueviolet" alt="code_coverage" class="inline"/> <img src="https://img.shields.io/badge/tests-passing-success?style=plastic&amp;labelColor=blueviolet" alt="tests" class="inline"/></p>
94-
<p>What if c++ strings where as easy to use as Python strings?</p>
93+
<p><a href="https://github.com/schmouk/pythonic-cpp-strings/license"><img src="http://img.shields.io/github/license/schmouk/pythonic-cpp-strings.svg?style=plastic&amp;labelColor=blueviolet&amp;color=lightblue" alt="license" style="pointer-events: none;" class="inline"/></a> <a href="https://github.com/schmouk/pythonic-cpp-strings/releases"><img src="http://img.shields.io/github/release/schmouk/pythonic-cpp-strings.svg?style=plastic&amp;labelColor=blueviolet&amp;color=success" alt="Latest release" style="pointer-events: none;" class="inline"/></a> <img src="https://img.shields.io/badge/code_coverage-100%25-success?style=plastic&amp;labelColor=blueviolet" alt="code_coverage" class="inline"/> <img src="https://img.shields.io/badge/tests-passing-success?style=plastic&amp;labelColor=blueviolet" alt="tests" class="inline"/></p>
94+
<h2 class="doxsection"><a class="anchor" id="autotoc_md1"></a>
95+
What if c++ strings where as easy to use as Python strings?</h2>
9596
<p>Let's just use c++ strings as are Python ones, with same API or as similar API as possible. <br />
9697
Library <b>cpp-strings</b> is fully templated. Just download header file <span class="tt">cppstrings.h</span> and put it anywhere in your project. Notice: all of its stuff is declared and defined in namespace <span class="tt">pcs</span> - which stands for <b>P**ythonic **C</b>++ **S**trings.</p>
9798
<ul>
@@ -100,11 +101,12 @@
100101
<li>Class <span class="tt">pcs::CppString</span> specializes the templated class with <span class="tt">char</span> characters.</li>
101102
<li>Class <span class="tt">pcs::CppWString</span> specializes the templated class with <span class="tt">wchar_t</span> characters.</li>
102103
</ul>
103-
<p><b>cpp-strings</b> is implemented with the currently most recent c++ standard available with gcc, clang and msvc c++ compilers, i.e. standard <b>c++20</b>.</p>
104+
<p>The <b>cpp-strings</b> HTML documentation is available here: <a href="html/index.html">html/index.html</a>.</p>
105+
<p>Library <b>cpp-strings</b> is implemented with the currently most recent c++ standard available with gcc, clang and msvc c++ compilers, i.e. standard <b>c++20</b>.</p>
104106
<ul>
105107
<li>directory <span class="tt">cpp-strings</span> contains the header file <span class="tt">cppstring.h</span>. <br />
106108
This is the header file to include in your projects.</li>
107-
<li>directory <span class="tt">cpp-strings-tests</span> contains the unit test file <span class="tt">cpp-strings-tests.cpp</span> <br />
109+
<li>directory <span class="tt">cpp-strings-tests</span> contains the unit-tests file <span class="tt">cpp-strings-tests.cpp</span> <br />
108110
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.</li>
109111
</ul>
110112
<p>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.</p>
@@ -115,8 +117,10 @@
115117
</ul>
116118
<p>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. <br />
117119
The vcproject associated with the unit tests in <b>cpp-strings</b> is already configured to use the option flag <span class="tt">/std:c++latest</span> since the implemented code uses a very few but very useful c++23 goodies.</p>
120+
<p>github repository: <a href="https://github.com/schmouk/pythonic-cpp-strings">https://github.com/schmouk/pythonic-cpp-strings</a> <br />
121+
pythonic-cpp-strings github web pages: <a href="https://schmouk.github.io/pythonic-cpp-strings/">https://schmouk.github.io/pythonic-cpp-strings/</a></p>
118122
<hr />
119-
<h1 class="doxsection"><a class="anchor" id="autotoc_md2"></a>
123+
<h1 class="doxsection"><a class="anchor" id="autotoc_md3"></a>
120124
License</h1>
121125
<pre class="fragment">Library cpp-strings
122126
"What if c++ strings where as easy to use as Python strings?"
@@ -137,23 +141,40 @@ <h1 class="doxsection"><a class="anchor" id="autotoc_md2"></a>
137141
You should have received a copy of the GNU General Public License
138142
along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.
139143
</pre><hr />
140-
<h1 class="doxsection"><a class="anchor" id="autotoc_md3"></a>
144+
<h1 class="doxsection"><a class="anchor" id="autotoc_md4"></a>
141145
Intro</h1>
142146
<p>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.</p>
143147
<p>So, we started to work on <b>Pythonic c++ strings</b>. Library <b>cpp-strings</b> is now ready. It fully implements the Python API (even with a c++ implementation of <em>slices</em>) and it is fully tested with <em>unitary tests</em>.</p>
144148
<p>The implementation of library <b>cpp-strings</b> is fully templated and is contained into a single header file: <span class="tt">cpp-strings/cppstrings.h</span>. 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!</p>
145149
<p>Header file <span class="tt">cpp-strings/cppstrings.h</span> defines:</p><ul>
146150
<li>templated class <span class="tt">template&lt;typename CharT&gt; class pcs::CppStringT</span> which implements all the stuff about pythonic c++ strings. It inherits from c++ STL class <span class="tt">std::basic_string&lt;CharT&gt;</span>, so it gets access to all c++ STL methods, functions and goodies about strings;</li>
147-
<li>this class is specialized by <span class="tt">using pcs::CppString&gt; = pcs::CppStringT&lt;char&gt;</span> for pythonic c++ strings based on <span class="tt">char</span> characters;</li>
148-
<li>it is also specialized by <span class="tt">using pcs::CppWString&gt; = pcs::CppStringT&lt;wchar_t&gt;</span> for pythonic c++ strings based on <span class="tt">wchar_t</span> characters.</li>
151+
<li>this class is specialized by: <span class="tt">using pcs::CppString&gt; = pcs::CppStringT&lt;char&gt;</span> for pythonic c++ strings based on <span class="tt">char</span> characters;</li>
152+
<li>it is also specialized by: <span class="tt">using pcs::CppWString&gt; = pcs::CppStringT&lt;wchar_t&gt;</span> for pythonic c++ strings based on <span class="tt">wchar_t</span> characters.</li>
149153
</ul>
150-
<p>The unitary tests are provided in directory <span class="tt">cpp-strings-tests/</span>. File <span class="tt">cpp-strings-tests.cpp</span> contains the related code. They has 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. <br />
151-
This <span class="tt">.cpp file</span> is a great place to see <b>cpp-strings</b> code in action. Each structure, class, method, litteral operator and function being unitary tested, you should find there many examples of their use for all <b>cpp-strings</b> stuff.</p>
154+
<p>The unitary tests are provided in directory <span class="tt">cpp-strings-tests/</span>. File <span class="tt">cpp-strings-tests/cpp-strings-tests.cpp</span> 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. <br />
155+
This <span class="tt">.cpp</span> file is a great place to see <b>cpp-strings</b> 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 <b>cpp-strings</b> stuff.</p>
156+
<hr />
157+
<h1 class="doxsection"><a class="anchor" id="autotoc_md6"></a>
158+
Latest Release - Release 1.0 (1.0.0.229) 2025/07</h1>
159+
<p>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 <b>Release 1.0</b>.</p>
160+
<p>This release has been fully tested. Code coverage is 100%.</p>
161+
<p>Release 1.0 implements all Python strings API but one feature (see below).</p>
162+
<p>Python <em>slices</em> are implemented via c++ <span class="tt">operator()</span> as declared and defined in the templated class <span class="tt">pcs::CppStringT&lt;&gt;</span>. Python slices have next specific notation: <span class="tt">[start : stop : step]</span> and allow the running step by step through range [start, stop) (notice: stop is excluded from the range). Operator <span class="tt">(start, stop, step)</span> acts the same way while running through the content of pythonic c++ strings. A dedicated base class <span class="tt">Slice</span> is also provided and can be passed as argument to <span class="tt">operator()</span>. It is derived in many simpler slices classes, since Python slices may not define either <span class="tt">start</span>, <span class="tt">stop</span> or <span class="tt">step</span> which then get default values (resp. 0, <em>end-of-sequence</em>, and 1).</p>
163+
<h2 class="doxsection"><a class="anchor" id="autotoc_md7"></a>
164+
Missing parts in Release 1.0</h2>
165+
<p>Python strings are based on Unicode chars. This is currently not the case for pythonic c++ strings in <b>cpp-strings</b>. <br />
166+
Unicode encoding allows for a specific comparison mode on strings, the <b>casefold</b> mode. There, Unicode chars are transformed into their lower equivalent char in a standardized manner which is more "agressive" than the simpler lowering method <span class="tt">lower()</span>. Comparing strings without taking into account the case of their chars is then performed in a far more accurate manner. <br />
167+
This feature is currently NOT implemented in library <b>cpp-strings</b>.</p>
168+
<p>So up to now, if you want to compare pythonic c++ strings from <b>cpp-strings</b> on whatever the case is for each of their chars, compare them applying method <span class="tt">.lower()</span> 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).</p>
169+
<p>Notice: dealing with Unicode chars and implementing method <span class="tt">casefold()</span> as it is the case in Python is planned for a next release of library <b>cpp-strings</b>. <br />
170+
N.B. "*planned for a next release*" does not imply that a fixed date is planned either.</p>
152171
<hr />
153-
<h1 class="doxsection"><a class="anchor" id="autotoc_md5"></a>
154-
Latest Release - Release 1.0 (1.0.0.224) 2025/07</h1>
155-
<p>The coding of this project started by March 2023 and had been put in standby mode for some months. The very first release is now availble (since July 2025), as <b>Release 1.0</b>.</p>
156-
<p>This release has been fully tested. It implements all Python strings API but one feature (see below). Python <em>slices</em> are implemented via c++ <span class="tt">operator()</span> as declared and defined in the templated class <span class="tt">pcs::CppStringT&lt;&gt;</span>. Python slices have next specific notation: <span class="tt">[start : stop : step]</span> and allow the running through range [start, stop) (notice: stop is excluded from the range) step by step. Operator <span class="tt">(start, stop, step)</span> acts the same way while running through the content of c++ strings. </p>
172+
<h1 class="doxsection"><a class="anchor" id="autotoc_md9"></a>
173+
Documentation</h1>
174+
<p>The <b>cpp-strings</b> HTML documentation is available here: <a href="html/index.html">html/index.html</a>.</p>
175+
<p>It has then been produced with the great utility <b>doxygen</b> developed by Vicente Hernando (the doxygen Github repository can be accessed <a href="https://github.com/doxygen/doxygen">here</a>, and the utility can be downloaded from there: <a href="https://www.doxygen.nl/download.html">https://www.doxygen.nl/download.html</a>).</p>
176+
<p>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 <b>cpp-strings</b>.</p>
177+
<p>And remember: to better understand how to use this pythonic c++ strings library, have a look also at <a href="cpp-strings-tests/cpp-strings-tests.cpp"><span class="tt">cpp-strings-tests/cpp-strings-tests.cpp</span></a> to see <b>cpp-strings</b> library code in action! </p>
157178
</div></div><!-- PageDoc -->
158179
<a href="doxygen_crawl.html"></a>
159180
</div><!-- contents -->

cpp-strings/html/index.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
var index =
22
[
3-
[ "License", "index.html#autotoc_md2", null ],
4-
[ "Intro", "index.html#autotoc_md3", null ],
5-
[ "Latest Release - Release 1.0 (1.0.0.224) 2025/07", "index.html#autotoc_md5", null ]
3+
[ "License", "index.html#autotoc_md3", null ],
4+
[ "Intro", "index.html#autotoc_md4", null ],
5+
[ "Latest Release - Release 1.0 (1.0.0.229) 2025/07", "index.html#autotoc_md6", [
6+
[ "What if c++ strings where as easy to use as Python strings?", "index.html#autotoc_md1", null ],
7+
[ "Missing parts in Release 1.0", "index.html#autotoc_md7", null ]
8+
] ],
9+
[ "Documentation", "index.html#autotoc_md9", null ]
610
];

cpp-strings/html/navtreedata.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
var NAVTREE =
2626
[
2727
[ "cpp-strings", "index.html", [
28-
[ "Library cpp-string", "index.html", "index" ],
28+
[ "Library cpp-strings", "index.html", "index" ],
2929
[ "Namespaces", "namespaces.html", [
3030
[ "Namespace List", "namespaces.html", "namespaces_dup" ],
3131
[ "Namespace Members", "namespacemembers.html", [

cpp-strings/html/navtreeindex1.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@ var NAVTREEINDEX1 =
1313
"hierarchy.html":[2,2],
1414
"index.html":[],
1515
"index.html":[0],
16-
"index.html#autotoc_md2":[0,0],
17-
"index.html#autotoc_md3":[0,1],
18-
"index.html#autotoc_md5":[0,2],
16+
"index.html#autotoc_md1":[0],
17+
"index.html#autotoc_md3":[0,0],
18+
"index.html#autotoc_md4":[0,1],
19+
"index.html#autotoc_md6":[0,2],
20+
"index.html#autotoc_md7":[0,2,1],
21+
"index.html#autotoc_md9":[0,3],
1922
"namespacemembers.html":[1,1,0],
2023
"namespacemembers_func.html":[1,1,1],
2124
"namespacemembers_type.html":[1,1,2],

cpp-strings/html/search/all_0.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
var searchData=
22
[
3-
['0_200_20224_202025_2007_0',['Latest Release - Release 1.0 (1.0.0.224) 2025/07',['../index.html#autotoc_md5',1,'']]],
4-
['0_201_200_200_20224_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.224) 2025/07',['../index.html#autotoc_md5',1,'']]],
5-
['0_20224_202025_2007_2',['Latest Release - Release 1.0 (1.0.0.224) 2025/07',['../index.html#autotoc_md5',1,'']]],
6-
['07_3',['Latest Release - Release 1.0 (1.0.0.224) 2025/07',['../index.html#autotoc_md5',1,'']]]
3+
['0_0',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]],
4+
['0_200_20229_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]],
5+
['0_201_200_200_20229_202025_2007_2',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]],
6+
['0_20229_202025_2007_3',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]],
7+
['07_4',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]]
78
];

cpp-strings/html/search/all_1.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
var searchData=
22
[
3-
['1_200_200_20224_202025_2007_0',['Latest Release - Release 1.0 (1.0.0.224) 2025/07',['../index.html#autotoc_md5',1,'']]],
4-
['1_200_201_200_200_20224_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.224) 2025/07',['../index.html#autotoc_md5',1,'']]]
3+
['1_200_0',['Missing parts in Release 1.0',['../index.html#autotoc_md7',1,'']]],
4+
['1_200_200_20229_202025_2007_1',['Latest Release - Release 1.0 (1.0.0.229) 2025/07',['../index.html#autotoc_md6',1,'']]],
5+
['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,'']]]
56
];

0 commit comments

Comments
 (0)