You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**YAIP++** is distributed under the terms of the **GNU LESSER GENERAL PUBLIC LICENSE**, version 3.0. The text of the license is included in the file [<code>LICENSE.TXT</code>](https://github.com/ThirtySomething/YAIP/blob/master/LICENSE.TXT"LGPL-3.0") in the project root.
19
-
- As testing framework [*Catch*](https://github.com/philsquared/Catch"Catch") is used.
7
+
## General information
20
8
21
-
<!--
22
-
- The build is done at [*Travis*](https://travis-ci.org "Travis-CI") using the following compilers:
23
-
- GCC C++ 4.9
24
-
- GCC C++ 5
25
-
- CLANG C++ 3.6
26
-
- CLANG C++ 3.7.
27
-
- For code coverage [*Codecov*](https://codecov.io "Codecov.io") is planned to use.
28
-
-->
9
+
-**YAIP++** is distributed under the terms of the **GNU LESSER GENERAL PUBLIC LICENSE**, version 3.0. The text of the license is included in the file [<code>LICENSE.TXT</code>][license] in the project root.
10
+
- As testing framework [*Catch2*][catch2] is used.
29
11
30
12
## Requirements
31
13
32
-
To use **YAIP++** you need to have an modern [C++11](https://en.wikipedia.org/wiki/C%2B%2B11"C++11")compiler. See the used parts at the section **Implementation Details**. Tested with [Visual Studio 2017](https://www.visualstudio.com/"Visual Studio").
14
+
To use **YAIP++** you need to have an modern [C++11][cpp_eleven]compiler. See the used parts at the section **Implementation Details**. Tested with [Visual Studio 2017][msvs].
33
15
34
16
## Supported Platforms
35
17
36
18
Supported platforms are all platforms where the code compiles and the tests run without any error.
37
19
38
20
## Motivation
39
21
40
-
Searching for INI parsers for C++ fires up a lot of them. Most of them come with a lot of stuff/classes around, some of them as library. Only a few of them offers plain classes. Also only a few of them are portable. And I'm missing the usage of modern C++ like own [*templates*](https://en.wikipedia.org/wiki/Template_(C%2B%2B)"Templates")and the usage of the [*STL*](https://de.wikipedia.org/wiki/Standard_Template_Library"STL"). I like to improve my C++ skills so I decided to write my own INI file parser.
22
+
Searching for INI parsers for C++ fires up a lot of them. Most of them come with a lot of stuff/classes around, some of them as library. Only a few of them offers plain classes. Also only a few of them are portable. And I'm missing the usage of modern C++ like own [*templates*][cpp_templates]and the usage of the [*STL*][cpp_stl]. I like to improve my C++ skills so I decided to write my own INI file parser.
41
23
42
24
## Implementation Details
43
25
44
26
* Convenience typedefs for datatypes in <code>YAIP++.h</code>
45
-
* Data containers are STL elements like [*vector*](http://en.cppreference.com/w/cpp/container/vector"Vector") or [*map*](http://en.cppreference.com/w/cpp/container/map"Map")
46
-
* Detection of section and key/value pair is done using [*regular expressions*](http://en.cppreference.com/w/cpp/regex"Regular Expression"), see also [*regular expression*](https://en.wikipedia.org/wiki/Regular_expression"Regular Expression")
47
-
* The major methods are based on [*std::string*](http://en.cppreference.com/w/cpp/string/basic_string"String")
48
-
* The templated methods using converters from and to [*std::string*](http://en.cppreference.com/w/cpp/string/basic_string"String")
27
+
* Data containers are STL elements like [*vector*][cpp_vector] or [*map*][cpp_map]
28
+
* Detection of section and key/value pair is done using [*regular expressions*][cpp_regexp], see also [*regular expression*][wiki_regexp]
29
+
* The major methods are based on [*std::string*][cpp_string]
30
+
* The templated methods using converters from and to [*std::string*][cpp_string]
49
31
50
32
## Extension
51
33
@@ -57,118 +39,158 @@ A doxygen documentation can be generated, the config file is located in the doxy
57
39
58
40
## API Overview
59
41
60
-
### File related actions:
61
-
62
-
* Load INI file
63
-
64
-
/**
65
-
* Load and parse INI file into internal structures
66
-
* \param Filename Full qualified filename of the INI file
67
-
* \return true on success otherwise false
68
-
*/
69
-
bool INIFileLoad(std::string Filename);
70
-
71
-
* Save INI file
72
-
73
-
/**
74
-
* Save internal structures to INI file
75
-
* \param Filename Full qualified filename of the INI file
76
-
* \return true on success otherwise false
77
-
*/
78
-
bool INIFileSave(std::string Filename);
79
-
80
-
* INI file exists
81
-
82
-
/**
83
-
* Check if given INI file exists
84
-
* \param Filename Full qualified filename of the INI file
* The implementation has to be checked against the inofficial specification at [Wikipedia](https://en.wikipedia.org/wiki/INI_file#Comments) and the tests have to satisfiy the specification.
174
-
* Comments are currently not supported - add this feature as desscribed in the specification.
175
+
- The implementation has to be checked against the inofficial specification at [Wikipedia][wiki_ini] and the tests have to satisfiy the specification.
176
+
- Comments are currently not supported - add this feature as desscribed in the specification.
0 commit comments