Create README.md

master
Clyne 4 years ago committed by GitHub
parent 8ec9f05fc0
commit e0142c827d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,44 @@
# ini-config
A single-header library that converts INI-formatted string literals to a key-value pair list at compile-time.
Requires C++20. Tested to work on gcc 10.1 and clang trunk. Passes `-Wall -Wextra -pedantic`.
## Features
* Comments and whitespace removed during compilation
* Handles single-line `key=value` pairs with very basic syntax error reporting
* Supports sections
* Supports comments (start line with ';' or '#', preceding whitespace is okay)
* Supports wide strings
## How to use
```cpp
// 1. Include
#include "ini_config.hpp"
// 2. Use _ini suffix
auto config = R"ini(
someflag = true
[Cat]
color = grey
lives = 9
)ini"_ini;
// ...
// Returns count of key-value pairs (KVPs), 3 in this case
config.size()
// Iterate through all KVPs using config.begin() and config.end()
for (auto kvp : config) {}
// Iterate through all KVPs under [Cat] section
for (auto kvp : config.section("Cat")) {}
```
See the header file for further documentation.
## How it works (brief)
1. `_ini` prefix constructs an `ini_config` object with the given string.
2. Syntax is validated, and a character array is sized to fit all section names, keys, and values.
3. The array is populated with values.
4. Compiled result is the minimized array, with efficient functions for iteration and access.
Loading…
Cancel
Save