summaryrefslogtreecommitdiff
path: root/index.html
blob: 0db9e379223ad82df5540817383c0d766ff9f20d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
<!DOCTYPE html>
<html lang="en"><head>
  <meta charset="utf-8"/>
  <title>toml++ TOML for C++</title>
  <link href="favicon.ico" rel="icon" type="image/vnd.microsoft.icon"/>
  <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
  <meta content="#22272e" name="theme-color"/>
  <link href="poxy/poxy.css" referrerpolicy="no-referrer" rel="stylesheet"/>
  <script src="poxy/poxy.js"></script>
  <script>initialize_theme("dark");</script>
  <meta content="toml++" name="twitter:title"/>
  <meta content="toml++" property="og:title"/>
  <meta content="toml++" itemprop="name"/>
  <meta content="Mark Gillard" name="author"/>
  <meta content="Mark Gillard" property="article:author"/>
  <meta content="TOML for C++" name="description"/>
  <meta content="TOML for C++" name="twitter:description"/>
  <meta content="TOML for C++" property="og:description"/>
  <meta content="TOML for C++" itemprop="description"/>
  <meta content="telephone=no" name="format-detection"/>
  <meta content="Poxy v0.20.1" name="generator"/>
  <meta content="strict-origin-when-cross-origin" name="referrer"/>
  <meta content="gbtcNgKlNiPSMKkYMw4zWFVWGPH_oU93m9n_-nb4qK8" name="google-site-verification"/>
</head>
<body class="poxy-has-toc poxy-has-main-banner poxy-has-badges">
<header><nav id="navigation">
  <div class="m-container">
    <div class="m-row">
      <a class="m-col-t-8 m-col-m-none m-left-m" href="index.html" id="m-navbar-brand"><svg class="poxy-injected-svg" id="poxy-injected-svg-0" version="1.1" viewBox="0 0 306 306" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><polygon fill="currentColor" points="0 0 0 306 67.79 306 67.79 273.09 35.1 273.09 35.1 33.62 67.79 33.62 67.79 0 0 0"></polygon><polygon fill="currentColor" points="237.62 0 237.62 33.62 270.3 33.62 270.3 273.09 237.62 273.09 237.62 306 306 306 306 0 237.62 0"></polygon><polygon fill="currentColor" points="127.3 247.43 127.3 109.37 172.72 109.37 172.72 77.69 48.41 77.69 48.41 109.37 94.43 109.37 94.43 247.43 127.3 247.43"></polygon><polygon fill="currentColor" points="256.69 163.46 241.45 163.46 241.45 148.22 222.33 148.22 222.33 163.46 207.09 163.46 207.09 182.58 222.33 182.58 222.33 197.82 241.45 197.82 241.45 182.58 256.69 182.58 256.69 163.46"></polygon><polygon fill="currentColor" points="192.74 163.46 177.5 163.46 177.5 148.22 158.38 148.22 158.38 163.46 143.14 163.46 143.14 182.58 158.38 182.58 158.38 197.82 177.5 197.82 177.5 182.58 192.74 182.58 192.74 163.46"></polygon></svg>toml++ <span class="m-thin">TOML for C++</span></a>
      <div class="m-col-t-4 m-hide-m m-text-right m-nopadr">
        <a class="m-doc-search-icon" href="#search" onclick="return showSearch()" title="Search"><svg style="height: 0.9rem;" viewBox="0 0 16 16">
          <path d="m6 0c-3.31 0-6 2.69-6 6 0 3.31 2.69 6 6 6 1.49 0 2.85-0.541 3.89-1.44-0.0164 0.338 0.147 0.759 0.5 1.15l3.22 3.79c0.552 0.614 1.45 0.665 2 0.115 0.55-0.55 0.499-1.45-0.115-2l-3.79-3.22c-0.392-0.353-0.812-0.515-1.15-0.5 0.895-1.05 1.44-2.41 1.44-3.89 0-3.31-2.69-6-6-6zm0 1.56a4.44 4.44 0 0 1 4.44 4.44 4.44 4.44 0 0 1-4.44 4.44 4.44 4.44 0 0 1-4.44-4.44 4.44 4.44 0 0 1 4.44-4.44z" id="m-doc-search-icon-path"></path>
        </svg></a>
        <a href="#navigation" id="m-navbar-show" title="Show navigation"></a>
        <a href="#" id="m-navbar-hide" title="Hide navigation"></a>
      </div>
      <div class="m-col-t-12 m-show-m m-col-m-none m-right-m" id="m-navbar-collapse">
        <div class="m-row">
          <ol class="m-col-t-6 m-col-m-none">
            <li><a href="namespaces.html">Namespaces</a></li>
            <li><a href="annotated.html">Classes</a></li>
            <li class="poxy-navbar-version-selector"><a href="index.html">Version: HEAD</a><ol><li><a href="index.html">HEAD</a></li></ol></li>
            <li><a class="poxy-icon twitter poxy-external" href="https://twitter.com/marzer8789" target="_blank" title="Twitter"><svg id="poxy-icon-twitter" version="1.1" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"><path d="M 50.0625 10.4375 C 48.214844 11.257813 46.234375 11.808594 44.152344 12.058594 C 46.277344 10.785156 47.910156 8.769531 48.675781 6.371094 C 46.691406 7.546875 44.484375 8.402344 42.144531 8.863281 C 40.269531 6.863281 37.597656 5.617188 34.640625 5.617188 C 28.960938 5.617188 24.355469 10.21875 24.355469 15.898438 C 24.355469 16.703125 24.449219 17.488281 24.625 18.242188 C 16.078125 17.8125 8.503906 13.71875 3.429688 7.496094 C 2.542969 9.019531 2.039063 10.785156 2.039063 12.667969 C 2.039063 16.234375 3.851563 19.382813 6.613281 21.230469 C 4.925781 21.175781 3.339844 20.710938 1.953125 19.941406 C 1.953125 19.984375 1.953125 20.027344 1.953125 20.070313 C 1.953125 25.054688 5.5 29.207031 10.199219 30.15625 C 9.339844 30.390625 8.429688 30.515625 7.492188 30.515625 C 6.828125 30.515625 6.183594 30.453125 5.554688 30.328125 C 6.867188 34.410156 10.664063 37.390625 15.160156 37.472656 C 11.644531 40.230469 7.210938 41.871094 2.390625 41.871094 C 1.558594 41.871094 0.742188 41.824219 -0.0585938 41.726563 C 4.488281 44.648438 9.894531 46.347656 15.703125 46.347656 C 34.617188 46.347656 44.960938 30.679688 44.960938 17.09375 C 44.960938 16.648438 44.949219 16.199219 44.933594 15.761719 C 46.941406 14.3125 48.683594 12.5 50.0625 10.4375 Z" fill="currentColor"></path></svg></a></li>
          </ol>
          <ol class="m-col-t-6 m-col-m-none" start="5">
            <li><a class="poxy-icon repo github poxy-external" href="https://github.com/marzer/tomlplusplus" target="_blank" title="View on GitHub"><svg id="poxy-icon-repo" version="1.1" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"><path d="M25,1.23a24.37,24.37,0,0,0-7.7,47.5C18.51,49,19,48.2,19,47.56s0-2.12,0-4.15c-6.78,1.47-8.21-3.27-8.21-3.27C9.61,37.33,8,36.58,8,36.58c-2.21-1.51.17-1.48.17-1.48a5.12,5.12,0,0,1,3.73,2.51c2.17,3.72,5.7,2.65,7.09,2a5.25,5.25,0,0,1,1.55-3.26c-5.41-.61-11.1-2.7-11.1-12A9.41,9.41,0,0,1,12,17.79a8.75,8.75,0,0,1,.24-6.45s2-.66,6.7,2.49a23.1,23.1,0,0,1,12.2,0c4.66-3.15,6.7-2.49,6.7-2.49A8.75,8.75,0,0,1,38,17.79a9.41,9.41,0,0,1,2.51,6.54c0,9.36-5.7,11.42-11.13,12a5.83,5.83,0,0,1,1.65,4.51c0,3.26,0,5.89,0,6.69,0,.65.44,1.41,1.68,1.17A24.38,24.38,0,0,0,25,1.23Z" fill="currentColor"></path></svg></a></li>
            <li><a class="poxy-icon sponsor poxy-external" href="https://github.com/sponsors/marzer" target="_blank" title="Become a sponsor"><svg id="poxy-icon-sponsor" version="1.1" viewBox="0 0 66.911 66.911" xmlns="http://www.w3.org/2000/svg"><path d="M66.911,22.831c0-10.563-8.558-19.122-19.118-19.122c-5.658,0-10.721,2.473-14.223,6.377  c-0.037,0.043-0.076,0.085-0.113,0.128c-3.5-3.98-8.618-6.505-14.334-6.505C8.561,3.709,0.005,12.268,0,22.831  c0,5.834,2.629,11.059,6.758,14.565H6.751l27.104,25.806l26.308-25.806h-0.012C64.279,33.89,66.911,28.669,66.911,22.831z" fill="currentColor"></path></svg></a></li>
            <li><a class="poxy-icon theme" href="javascript:void(null);" id="poxy-theme-switch" onclick="toggle_theme(); return false;" role="button" title="Toggle dark and light themes"><svg id="poxy-theme-switch-img" version="1.1" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><circle cx="185.6708" cy="183.8122" fill="currentColor" r="65.625"></circle><path d="M185.6708,87.5622a13.1256,13.1256,0,0,0,13.125-13.125V52.5622a13.125,13.125,0,1,0-26.25,0v21.875A13.1257,13.1257,0,0,0,185.6708,87.5622Z" fill="currentColor"></path><path d="M99.051,115.7519a13.1236,13.1236,0,1,0,18.56-18.56L102.1442,81.726a13.1236,13.1236,0,0,0-18.5595,18.56Z" fill="currentColor"></path><path d="M89.4208,183.8122a13.1257,13.1257,0,0,0-13.125-13.125H54.4208a13.125,13.125,0,0,0,0,26.25h21.875A13.1256,13.1256,0,0,0,89.4208,183.8122Z" fill="currentColor"></path><path d="M99.051,251.8725,83.5847,267.3431a13.1236,13.1236,0,1,0,18.56,18.56l15.4663-15.4706a13.1236,13.1236,0,1,0-18.5595-18.56Z" fill="currentColor"></path><path d="M185.6708,280.0622a13.1258,13.1258,0,0,0-13.125,13.125v21.875a13.125,13.125,0,0,0,26.25,0v-21.875A13.1257,13.1257,0,0,0,185.6708,280.0622Z" fill="currentColor"></path><path d="M272.2907,251.8725a13.1236,13.1236,0,1,0-18.56,18.56l15.4663,15.4706a13.1236,13.1236,0,1,0,18.56-18.56Z" fill="currentColor"></path><path d="M330.0458,183.8122a13.1257,13.1257,0,0,0-13.125-13.125h-21.875a13.125,13.125,0,0,0,0,26.25h21.875A13.1256,13.1256,0,0,0,330.0458,183.8122Z" fill="currentColor"></path><path d="M263.0109,119.5971a13.0824,13.0824,0,0,0,9.28-3.8452l15.4663-15.4663a13.1236,13.1236,0,1,0-18.56-18.56L253.7312,97.1923a13.125,13.125,0,0,0,9.28,22.4048Z" fill="currentColor"></path><path d="M456.9379,401.6714a63.97,63.97,0,0,1-14.9963,7.2055c-19.6448,6.5283-41.8787,2.9566-58.1439-9.8523a68.9311,68.9311,0,0,1-10.835-10.8339c-12.8088-16.2663-16.3806-38.5-9.8523-58.1471a63.8444,63.8444,0,0,1,7.2077-14.9931,8.8036,8.8036,0,0,0-10.1172-13.3034,87.5188,87.5188,0,1,0,110.0372,110.04A8.8,8.8,0,0,0,456.9379,401.6714Z" fill="currentColor"></path></svg></a></li>
            <li class="m-show-m"><a class="m-doc-search-icon" href="#search" onclick="return showSearch()" title="Search"><svg style="height: 0.9rem;" viewBox="0 0 16 16">
              <use href="#m-doc-search-icon-path"></use>
            </svg></a></li>
          </ol>
        </div>
      </div>
    </div>
  </div>
</nav></header>
<main><article>
  <div class="m-container m-container-inflatable">
    <div class="m-row">
      <div class="m-col-l-10 m-push-l-1">
        <svg class="m-image poxy-injected-svg" id="poxy-main-banner" version="1.1" viewBox="0 0 996.97 306" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><clipPath id="poxy-main-banner-a" transform="translate(-158 -48)"><rect fill="none" height="306" width="306" x="158" y="48"></rect></clipPath></defs><title>banner</title><g clip-path="url(#poxy-main-banner-a)"><rect fill="#004482" height="306" width="306"></rect><polygon fill="#649ad2" points="0 0 0 306 67.79 306 67.79 273.09 35.1 273.09 35.1 33.62 67.79 33.62 67.79 0 0 0"></polygon><polygon fill="#649ad2" points="237.62 0 237.62 33.62 270.3 33.62 270.3 273.09 237.62 273.09 237.62 306 306 306 306 0 237.62 0"></polygon><polygon fill="#fff" points="127.3 247.43 127.3 109.37 172.72 109.37 172.72 77.69 48.41 77.69 48.41 109.37 94.43 109.37 94.43 247.43 127.3 247.43"></polygon><polygon fill="#fff" points="256.69 163.46 241.45 163.46 241.45 148.22 222.33 148.22 222.33 163.46 207.09 163.46 207.09 182.58 222.33 182.58 222.33 197.82 241.45 197.82 241.45 182.58 256.69 182.58 256.69 163.46"></polygon><polygon fill="#fff" points="192.74 163.46 177.5 163.46 177.5 148.22 158.38 148.22 158.38 163.46 143.14 163.46 143.14 182.58 158.38 182.58 158.38 197.82 177.5 197.82 177.5 182.58 192.74 182.58 192.74 163.46"></polygon></g><path d="M541.72,146.68v15.84H554.8V176H541.72V197.2c0,7.08,1.8,10.32,7.2,10.32a22.43,22.43,0,0,0,5.4-.48l.12,13.8a38.39,38.39,0,0,1-11.76,1.56c-5.88,0-10.8-2-13.8-5-3.36-3.48-5-9.12-5-17.4V176H516V162.52h7.8V151.6Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M622.72,191.2c0,21.48-15.24,31.32-31,31.32-17.16,0-30.36-11.28-30.36-30.24s12.48-31.2,31.44-31.2C610.72,161.08,622.72,173.44,622.72,191.2Zm-42.48.6c0,10.08,4.2,17.64,12,17.64,7.2,0,11.64-7.08,11.64-17.76,0-8.64-3.36-17.52-11.64-17.52C583.6,174.16,580.24,183.16,580.24,191.8Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M634,181.24c0-7.32-.24-13.44-.48-18.72H649l.72,7.92h.36a20.31,20.31,0,0,1,17.76-9.36c7.68,0,13.56,4,16.08,10.08h.24a25.52,25.52,0,0,1,7.68-7.2A22.34,22.34,0,0,1,703,161.08c11.28,0,19.8,7.92,19.8,25.56V221.2H705V189.28c0-8.52-2.76-13.44-8.64-13.44-4.32,0-7.2,2.88-8.52,6.36a19.2,19.2,0,0,0-.6,4.68V221.2H669.52v-33c0-7.32-2.64-12.36-8.52-12.36-4.68,0-7.44,3.6-8.52,6.48a12.34,12.34,0,0,0-.72,4.68v34.2H634Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M737.2,136h18.24v85.2H737.2Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M804.52,157.36v26.16h25.07v11.16H804.52V221.2H792.76V194.68H767.68V183.52h25.08V157.36Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M876,157.36v26.16h25.07v11.16H876V221.2H864.28V194.68H839.2V183.52h25.08V157.36Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M519.89,252.26h-5.35v-5.45h16.65v5.45h-5.4v24.88h-5.9Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M551.62,261.43c0,11.43-4,16.07-9.81,16.07-6.88,0-9.58-7.29-9.58-15.62s3.28-15.43,10-15.43C549.55,246.45,551.62,254.5,551.62,261.43Zm-13.27.54c0,6.89,1.3,10.4,3.69,10.4s3.46-4.5,3.46-10.66c0-5.32-.81-10.13-3.51-10.13C539.65,251.58,538.35,255.45,538.35,262Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M573.89,266.52c-.18-2.88-.36-6.8-.31-10h-.09c-.54,3.24-1.35,7-1.94,9.32l-2.65,10.84h-4.14L562.24,266c-.59-2.43-1.4-6.21-1.89-9.5h-.09c-.09,3.29-.31,7.11-.45,10.13l-.54,10.53h-5l2.16-30.33h6.25l2.43,11c.81,3.83,1.58,7.2,2.12,10.62h.13c.45-3.37,1.13-6.79,1.89-10.62l2.43-11h6.21l1.85,30.33h-5.27Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M584,246.81h5.9v25.33h7.73v5H584Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M619.93,276.78a10.41,10.41,0,0,1-3.74.63c-5.57,0-9.22-3.87-9.22-11,0-6.79,4-11.51,10.08-11.51a8.71,8.71,0,0,1,3.24.58l-.77,4.63a6.16,6.16,0,0,0-2.2-.4c-2.84,0-4.5,2.7-4.5,6.53s1.66,6.38,4.41,6.38a4.76,4.76,0,0,0,2.2-.45Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M638.33,266.07c0,9.18-5.08,11.43-8.41,11.43-5.26,0-8.42-4.14-8.42-11.29,0-7.92,4.14-11.48,8.51-11.48C635.23,254.73,638.33,259.09,638.33,266.07Zm-11,0c0,3.78.59,6.93,2.7,6.93,1.94,0,2.43-3.69,2.43-6.93,0-3-.49-6.84-2.52-6.84S627.35,263.05,627.35,266.07Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M641.67,261.75c0-2.38-.1-4.5-.19-6.62h5.09l.31,2.52H647a6.31,6.31,0,0,1,5.31-2.87c4.19,0,5.85,3.33,5.85,8.23v14.13h-5.89V263.37c0-1.84-.45-3.65-2.16-3.65-1,0-1.8.68-2.21,2a5.73,5.73,0,0,0-.31,2v13.41h-5.89Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M663.31,277.14V259.32h-3v-4.19h3V254c0-2.83,1.8-8.32,9.76-8.32a13.21,13.21,0,0,1,5.18.9l-.81,4.64a12,12,0,0,0-4.14-.72c-3.2,0-4.1,1.84-4.1,3.91v.76h10.94v22h-5.9V259.32h-5v17.82Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M700.34,274.66c0,4.73-.9,7.34-2.65,9a10,10,0,0,1-7.16,2.43,13.82,13.82,0,0,1-5.49-1l1.08-4.54a9.3,9.3,0,0,0,4.19.94c3,0,4.14-2,4.14-5.35V274.8h-.09a4.46,4.46,0,0,1-4,2.2c-4.91,0-6.84-5.4-6.84-10.66,0-7.34,3.33-11.61,7.38-11.61a4.43,4.43,0,0,1,4,2.65h.09l.31-2.25h5.18c-.14,2-.23,4.33-.23,7Zm-5.89-11.52a5.58,5.58,0,0,0-.23-1.61c-.27-.95-.9-1.81-1.89-1.81-2.11,0-3,2.89-3,6.49,0,4.09,1.17,6.16,2.88,6.16a2.06,2.06,0,0,0,1.94-1.58,4.53,4.53,0,0,0,.27-1.75Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M711.5,262.11c0-2.65-.09-4.86-.18-7h5.13l.32,2.52h.09a5.07,5.07,0,0,1,4.63-2.92c4.82,0,6.8,5.26,6.8,11.39,0,7.82-3.42,11.38-7.16,11.38a4.28,4.28,0,0,1-3.64-2.16h-.09v10.44h-5.9Zm5.9,7a4.45,4.45,0,0,0,.31,1.84c.45,1.35,1.22,1.71,1.89,1.71,2.07,0,2.84-3.05,2.84-6.52,0-4.19-1-6.44-2.79-6.44a2.28,2.28,0,0,0-2,1.9,3.52,3.52,0,0,0-.27,1.57Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M746.51,272.1a34.56,34.56,0,0,0,.32,5h-5.27l-.31-2.16h-.14a5.81,5.81,0,0,1-4.86,2.52c-3.33,0-5.8-2.79-5.8-6.66,0-5.8,5.08-8.14,10.08-8.19v-.5a2.79,2.79,0,0,0-3.11-3,8.31,8.31,0,0,0-4.5,1.31l-1.08-4a15.19,15.19,0,0,1,6.89-1.66c6.7,0,7.78,4.68,7.78,9.18Zm-5.8-5.67c-1.94,0-4.68.72-4.68,3.78,0,2.16,1.21,3,2.11,3a2.52,2.52,0,0,0,2.43-1.89,3.64,3.64,0,0,0,.14-1Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M750.65,261.75c0-2.16-.09-4.54-.18-6.62h5.09l.31,3.2h.18c1-2.34,2.75-3.6,4.32-3.6a4.18,4.18,0,0,1,1.26.14v5.8a11.85,11.85,0,0,0-1.26,0,3.83,3.83,0,0,0-3.55,3.1,7.13,7.13,0,0,0-.27,2.2v11.21h-5.9Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M763.7,271.83a8.27,8.27,0,0,0,4,1.17c1.53,0,2.39-.68,2.39-2,0-1.13-.63-1.85-2.57-3-3.55-2-4.45-4.32-4.45-6.34,0-4,2.83-7,7.24-7a9.66,9.66,0,0,1,4.46,1l-1,4.31a6.14,6.14,0,0,0-3.06-.89c-1.53,0-2.2.89-2.2,1.88s.49,1.54,2.56,2.75c3.24,1.84,4.46,4.14,4.46,6.66,0,4.5-3.24,6.93-7.79,6.93a9.44,9.44,0,0,1-5-1.26Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M783.41,268.23c.05,3.42,2.07,4.68,4.64,4.68a13.21,13.21,0,0,0,4.18-.72l.77,4.23a17.84,17.84,0,0,1-6,1c-6,0-9.31-4-9.31-10.85,0-7.42,3.87-11.83,8.82-11.83,4.72,0,7.47,3.73,7.47,10.44a20.5,20.5,0,0,1-.18,3.06Zm5.22-4.14c0-2.84-.72-5-2.47-5s-2.7,2.83-2.75,5Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M797.32,261.75c0-2.16-.09-4.54-.18-6.62h5.08l.32,3.2h.18c.94-2.34,2.74-3.6,4.32-3.6a4.22,4.22,0,0,1,1.26.14v5.8a12,12,0,0,0-1.26,0,3.84,3.84,0,0,0-3.56,3.1,7.13,7.13,0,0,0-.27,2.2v11.21h-5.89Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M832.55,272.1a34.56,34.56,0,0,0,.32,5H827.6l-.31-2.16h-.14a5.81,5.81,0,0,1-4.86,2.52c-3.33,0-5.8-2.79-5.8-6.66,0-5.8,5.08-8.14,10.08-8.19v-.5a2.79,2.79,0,0,0-3.11-3,8.31,8.31,0,0,0-4.5,1.31l-1.08-4a15.19,15.19,0,0,1,6.89-1.66c6.7,0,7.78,4.68,7.78,9.18Zm-5.8-5.67c-1.94,0-4.68.72-4.68,3.78,0,2.16,1.21,3,2.11,3a2.52,2.52,0,0,0,2.43-1.89,3.64,3.64,0,0,0,.14-1Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M836.69,261.75c0-2.38-.09-4.5-.18-6.62h5.09l.31,2.52H842a6.31,6.31,0,0,1,5.31-2.87c4.19,0,5.85,3.33,5.85,8.23v14.13h-5.89V263.37c0-1.84-.45-3.65-2.16-3.65-1,0-1.8.68-2.21,2a5.73,5.73,0,0,0-.31,2v13.41h-5.9Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M873.27,246v24.61c0,2.07.09,4.5.19,6.53h-5.09l-.32-2.48h-.13a5.34,5.34,0,0,1-4.55,2.84c-4.67,0-6.83-5.18-6.83-11.34,0-7.65,3.37-11.43,7.06-11.43a3.8,3.8,0,0,1,3.69,2.25h.09V246Zm-5.89,17.59a6.37,6.37,0,0,0-.09-1.3c-.18-1.35-.9-2.57-2.07-2.57-2.07,0-2.84,3-2.84,6.57,0,4.19,1.13,6.39,2.75,6.39.77,0,1.62-.4,2.07-1.93a4,4,0,0,0,.18-1.4Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M884.39,271.83a8.27,8.27,0,0,0,4,1.17c1.53,0,2.38-.68,2.38-2,0-1.13-.63-1.85-2.56-3-3.55-2-4.46-4.32-4.46-6.34,0-4,2.84-7,7.25-7a9.64,9.64,0,0,1,4.45,1l-1,4.31a6.17,6.17,0,0,0-3.06-.89c-1.53,0-2.21.89-2.21,1.88s.5,1.54,2.57,2.75c3.24,1.84,4.45,4.14,4.45,6.66,0,4.5-3.24,6.93-7.78,6.93a9.45,9.45,0,0,1-5-1.26Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M904.1,268.23c0,3.42,2.07,4.68,4.63,4.68a13.22,13.22,0,0,0,4.19-.72l.76,4.23a17.78,17.78,0,0,1-6,1c-6,0-9.32-4-9.32-10.85,0-7.42,3.87-11.83,8.82-11.83,4.73,0,7.47,3.73,7.47,10.44a20.5,20.5,0,0,1-.18,3.06Zm5.22-4.14c0-2.84-.72-5-2.48-5s-2.7,2.83-2.74,5Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M918,261.75c0-2.16-.09-4.54-.18-6.62h5.09l.31,3.2h.18c1-2.34,2.75-3.6,4.32-3.6a4.18,4.18,0,0,1,1.26.14v5.8a11.85,11.85,0,0,0-1.26,0,3.83,3.83,0,0,0-3.55,3.1,7.13,7.13,0,0,0-.27,2.2v11.21H918Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M937.13,249.33a3,3,0,0,1-3.11,3.2,3,3,0,0,1-2.92-3.2,3,3,0,1,1,6,0Zm-5.9,27.81v-22h5.9v22Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M956.12,272.1a36.08,36.08,0,0,0,.31,5h-5.26l-.32-2.16h-.13a5.82,5.82,0,0,1-4.86,2.52c-3.33,0-5.81-2.79-5.81-6.66,0-5.8,5.09-8.14,10.08-8.19v-.5a2.79,2.79,0,0,0-3.1-3,8.28,8.28,0,0,0-4.5,1.31l-1.08-4a15.17,15.17,0,0,1,6.88-1.66c6.71,0,7.79,4.68,7.79,9.18Zm-5.81-5.67c-1.93,0-4.68.72-4.68,3.78,0,2.16,1.22,3,2.12,3a2.53,2.53,0,0,0,2.43-1.89,3.65,3.65,0,0,0,.13-1Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M960.26,246h5.89v31.14h-5.89Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M976.28,249.33a3,3,0,0,1-3.11,3.2,3,3,0,0,1-2.92-3.2,3,3,0,1,1,6,0Zm-5.9,27.81v-22h5.9v22Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M979.16,273.45l5.4-9.81c.72-1.22,1.62-2.7,2.07-3.56V260h-6.8v-4.82H993v4l-5.27,9.45c-.72,1.3-1.57,2.7-2.07,3.6v.13h7.56v4.82H979.16Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M1000.85,268.23c0,3.42,2.07,4.68,4.63,4.68a13.22,13.22,0,0,0,4.19-.72l.76,4.23a17.78,17.78,0,0,1-6,1c-6,0-9.32-4-9.32-10.85,0-7.42,3.87-11.83,8.82-11.83,4.73,0,7.47,3.73,7.47,10.44a20.5,20.5,0,0,1-.18,3.06Zm5.22-4.14c0-2.84-.72-5-2.48-5s-2.7,2.83-2.74,5Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M1014.75,261.75c0-2.16-.09-4.54-.18-6.62h5.09l.31,3.2h.18c1-2.34,2.75-3.6,4.32-3.6a4.18,4.18,0,0,1,1.26.14v5.8a11.85,11.85,0,0,0-1.26,0,3.83,3.83,0,0,0-3.55,3.1,7.13,7.13,0,0,0-.27,2.2v11.21h-5.9Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M1036.17,277.14V259.32h-3v-4.19h3v-.85a8.94,8.94,0,0,1,2.3-6.61,7,7,0,0,1,5.22-2,12.06,12.06,0,0,1,3.55.49l-.67,4.59a5.08,5.08,0,0,0-1.8-.26c-2,0-2.7,1.71-2.7,3.64v1h3.82v4.19h-3.82v17.82Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M1063.71,266.07c0,9.18-5.08,11.43-8.41,11.43-5.27,0-8.42-4.14-8.42-11.29,0-7.92,4.14-11.48,8.51-11.48C1060.61,254.73,1063.71,259.09,1063.71,266.07Zm-11,0c0,3.78.59,6.93,2.7,6.93,1.94,0,2.43-3.69,2.43-6.93,0-3-.49-6.84-2.52-6.84S1052.73,263.05,1052.73,266.07Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M1067,261.75c0-2.16-.09-4.54-.18-6.62H1072l.31,3.2h.18c1-2.34,2.75-3.6,4.32-3.6a4.18,4.18,0,0,1,1.26.14v5.8a12,12,0,0,0-1.26,0,3.83,3.83,0,0,0-3.55,3.1,7.13,7.13,0,0,0-.27,2.2v11.21H1067Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M1102.5,276.69a12,12,0,0,1-4.54.72c-7.79,0-11.48-6.35-11.48-15,0-11.42,6.35-15.88,12.24-15.88a8.12,8.12,0,0,1,4.09.81l-1,5a6,6,0,0,0-2.75-.59c-3.33,0-6.34,2.89-6.34,10.4,0,7.24,2.74,10.08,6.34,10.08a10.63,10.63,0,0,0,2.84-.45Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M1118.43,253.2v10.08h9.72V267h-9.72v10.17h-3.78V267h-9.72v-3.69h9.72V253.2Z" fill="currentColor" transform="translate(-158 -48)"></path><path d="M1145.25,253.2v10.08H1155V267h-9.72v10.17h-3.78V267h-9.72v-3.69h9.72V253.2Z" fill="currentColor" transform="translate(-158 -48)"></path></svg><div id="poxy-badges"><span><a class="poxy-external" href="https://github.com/marzer/tomlplusplus/blob/master/LICENSE" target="_blank"><svg class="poxy-injected-svg" height="20" id="poxy-injected-svg-2" version="1.1" width="78" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g shape-rendering="crispEdges"><path d="M0 0h47v20H0z" fill="#555"></path><path d="M47 0h31v20H47z" fill="purple"></path></g><g fill="#fff" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110" text-anchor="middle"><text textLength="370" transform="scale(.1)" x="245" y="140">license</text><text textLength="210" transform="scale(.1)" x="615" y="140">MIT</text></g></svg></a><a class="poxy-external" href="https://github.com/marzer/tomlplusplus/releases" target="_blank"><img alt="Releases" src="https://img.shields.io/github/v/release/marzer/tomlplusplus?style=flat-square"/></a></span><span><a class="poxy-cppreference poxy-external" href="https://en.cppreference.com/w/cpp/compiler_support" target="_blank"><svg class="poxy-injected-svg" height="20" id="poxy-injected-svg-3" version="1.1" width="125" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g shape-rendering="crispEdges"><path d="M0 0h76v20H0z" fill="#555"></path><path d="M76 0h49v20H76z" fill="#007ec6"></path></g><g fill="#fff" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110" text-anchor="middle"><image height="14" width="14" x="5" xlink:href="data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZXNtb2tlIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+QysrIGljb248L3RpdGxlPjxwYXRoIGQ9Ik0yMi4zOTMgNmMtLjE2Ny0uMjktLjM5OC0uNTQzLS42NTItLjY5TDEyLjkyNS4yMmMtLjUwOC0uMjkzLTEuMzM5LS4yOTMtMS44NDcgMEwyLjI2IDUuMzFjLS41MDguMjkzLS45MjMgMS4wMTMtLjkyMyAxLjZ2MTAuMThjMCAuMjk0LjEwNC42Mi4yNzEuOTEuMTY3LjI5LjM5OC41NDMuNjUyLjY4OWw4LjgxNiA1LjA5MWMuNTA4LjI5MyAxLjMzOS4yOTMgMS44NDcgMGw4LjgxNi01LjA5MWMuMjU0LS4xNDYuNDg1LS4zOTkuNjUyLS42ODlzLjI3MS0uNjE2LjI3MS0uOTFWNi45MWMuMDAyLS4yOTQtLjEwMi0uNjItLjI2OS0uOTF6TTEyIDE5LjEwOWMtMy45MiAwLTcuMTA5LTMuMTg5LTcuMTA5LTcuMTA5UzguMDggNC44OTEgMTIgNC44OTFhNy4xMzMgNy4xMzMgMCAwIDEgNi4xNTYgMy41NTJsLTMuMDc2IDEuNzgxQTMuNTY3IDMuNTY3IDAgMCAwIDEyIDguNDQ1Yy0xLjk2IDAtMy41NTQgMS41OTUtMy41NTQgMy41NTVTMTAuMDQgMTUuNTU1IDEyIDE1LjU1NWEzLjU3IDMuNTcgMCAwIDAgMy4wOC0xLjc3OGwzLjA3NyAxLjc4QTcuMTM1IDcuMTM1IDAgMCAxIDEyIDE5LjEwOXptNy4xMDktNi43MTRoLS43OXYuNzloLS43OXYtLjc5aC0uNzl2LS43OWguNzl2LS43OWguNzl2Ljc5aC43OXYuNzl6bTIuOTYyIDBoLS43OXYuNzloLS43OXYtLjc5aC0uNzg5di0uNzloLjc4OXYtLjc5aC43OXYuNzloLjc5di43OXoiLz48L3N2Zz4=" y="3"/><text textLength="490" transform="scale(.1)" x="475" y="140">standard</text><text textLength="390" transform="scale(.1)" x="995" y="140">C++17</text></g></svg></a><a class="poxy-external" href="https://toml.io/en/v1.0.0" target="_blank"><svg aria-label="TOML: v1.0.0" class="poxy-injected-svg" height="20" id="poxy-injected-svg-4" role="img" version="1.1" width="86" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>TOML: v1.0.0</title><g shape-rendering="crispEdges"><rect fill="#555" height="20" width="41"></rect><rect fill="#007ec6" height="20" width="45" x="41"></rect></g><g fill="#fff" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="110" text-anchor="middle" text-rendering="geometricPrecision"><text fill="#fff" textLength="310" transform="scale(.1)" x="215" y="140">TOML</text><text fill="#fff" textLength="350" transform="scale(.1)" x="625" y="140">v1.0.0</text></g></svg></a></span><span><a class="poxy-external" href="https://github.com/fffaraz/awesome-cpp" target="_blank"><svg class="poxy-injected-svg" height="20" id="poxy-injected-svg-5" version="1.1" viewBox="0 0 110 20" width="110" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Mentioned in an Awesome list</title><defs><path d="M53.57 3.52h-4.446V7h.648V4.3c0-.072.06-.132.132-.132h1.38c.072 0 .132.06.132.132V7h.648V4.3c0-.072.06-.132.132-.132h1.374c.078 0 .138.06.138.132V7h.642V4.3a.778.778 0 0 0-.78-.78zm4.704 0c.432 0 .78.348.78.78v1.284h-2.892v.636c0 .072.06.132.132.132h2.76V7h-2.76a.778.778 0 0 1-.78-.78V4.3c0-.432.348-.78.78-.78h1.98zm-2.112 1.416h2.244V4.3a.133.133 0 0 0-.132-.132h-1.98a.133.133 0 0 0-.132.132v.636zm6.822-1.416h-2.76V7h.648V4.3c0-.072.06-.132.132-.132h1.98c.072 0 .132.06.132.132V7h.648V4.3a.778.778 0 0 0-.78-.78zm4.026.648V3.52h-1.428V2.38h-.648v3.84c0 .432.348.78.78.78h1.296v-.648h-1.296a.133.133 0 0 1-.132-.132V4.168h1.428zM67.928 7h.648V3.52h-.648V7zm0-4.62v.648h.648V2.38h-.648zm2.562 1.14h1.98c.432 0 .78.348.78.78v1.92c0 .432-.348.78-.78.78h-1.98a.778.778 0 0 1-.78-.78V4.3c0-.432.348-.78.78-.78zm1.98.648h-1.98a.133.133 0 0 0-.132.132v1.92c0 .072.06.132.132.132h1.98c.072 0 .132-.06.132-.132V4.3a.133.133 0 0 0-.132-.132zm4.62-.648h-2.76V7h.648V4.3c0-.072.06-.132.132-.132h1.98c.072 0 .132.06.132.132V7h.648V4.3a.778.778 0 0 0-.78-.78zm4.698 0c.432 0 .78.348.78.78v1.284h-2.892v.636c0 .072.06.132.132.132h2.76V7h-2.76a.778.778 0 0 1-.78-.78V4.3c0-.432.348-.78.78-.78h1.98zm-2.112 1.416h2.244V4.3a.133.133 0 0 0-.132-.132h-1.98a.133.133 0 0 0-.132.132v.636zm6.768-2.556h.648V7h-2.76a.778.778 0 0 1-.78-.78V4.3c0-.432.348-.78.78-.78h2.112V2.38zm-2.112 3.972h1.98c.072 0 .132-.06.132-.132V4.3a.133.133 0 0 0-.132-.132h-1.98a.133.133 0 0 0-.132.132v1.92c0 .072.06.132.132.132zM90.548 7h.648V3.52h-.648V7zm0-4.62v.648h.648V2.38h-.648zm4.56 1.14h-2.76V7h.648V4.3c0-.072.06-.132.132-.132h1.98c.072 0 .132.06.132.132V7h.648V4.3a.778.778 0 0 0-.78-.78z" id="poxy-injected-svg-5-a"></path></defs><g fill="none" fill-rule="evenodd"><g fill-rule="nonzero"><path d="M0 0h34v20H0z" fill="#CCA6C4"></path><path d="M34 0h77v20H34z" fill="#494368"></path></g><g fill-rule="nonzero"><path d="M46.97 9.92c.42 0 .75.13 1.05.4.28.27.43.59.43.98v4.79h-5.24c-.42 0-.77-.13-1.05-.4a1.31 1.31 0 0 1-.43-.98v-2.27h5.5v-1.15c0-.07-.03-.12-.08-.16a.284.284 0 0 0-.17-.07h-5.24V9.92h5.23zm.26 5.02v-1.36h-4.26v1.13c0 .07.03.12.08.16.05.04.11.07.17.07h4.01zm11.86-5.02h1.3l-2.49 6.17h-1l-2.22-4.59-2.1 4.59-.03-.01.01.01h-1l-2.6-6.17h1.3l1.79 4.09 1.91-4.09h1.4l2.02 4.09 1.71-4.09zm6.95 0c.42 0 .77.13 1.05.4s.43.59.43.98v2.27h-5.5v1.13c0 .07.03.12.08.16.05.04.11.07.17.07h5.24v1.14h-5.24c-.42 0-.77-.13-1.05-.4a1.31 1.31 0 0 1-.43-.98v-3.4c0-.38.15-.71.43-.98s.63-.4 1.05-.4h3.77v.01zm-4.01 2.5h4.26v-1.13c0-.07-.03-.12-.08-.16a.284.284 0 0 0-.17-.07h-3.77a.26.26 0 0 0-.17.07c-.05.04-.08.11-.08.16v1.13h.01zm13.35-1.13v.23h-1.22v-.23c0-.07-.03-.12-.08-.16a.284.284 0 0 0-.17-.07h-3.77a.26.26 0 0 0-.17.07c-.05.04-.08.11-.08.16v.9c0 .07.03.12.08.16.05.04.11.07.17.07h3.77c.42 0 .75.13 1.05.4.28.27.43.59.43.98v.89c0 .38-.15.71-.43.98s-.63.4-1.05.4h-3.77c-.42 0-.77-.13-1.05-.4a1.31 1.31 0 0 1-.43-.98v-.23h1.24v.23c0 .07.03.12.08.16.05.04.11.07.17.07h3.77c.07 0 .12-.03.17-.07.05-.04.08-.11.08-.16v-.89c0-.07-.03-.12-.08-.16a.284.284 0 0 0-.17-.07h-3.77c-.42 0-.77-.13-1.05-.4a1.31 1.31 0 0 1-.43-.98v-.9c0-.38.15-.71.43-.98s.63-.4 1.05-.4h3.77c.42 0 .75.13 1.05.4.27.28.41.61.41.98zm2.6-1.37h3.77c.42 0 .77.13 1.05.4s.43.59.43.98v3.4c0 .38-.15.71-.43.98s-.63.4-1.05.4h-3.77c-.42 0-.77-.13-1.05-.4a1.31 1.31 0 0 1-.43-.98v-3.41c0-.38.15-.71.43-.98.3-.26.65-.39 1.05-.39zm3.77 1.14h-3.77a.26.26 0 0 0-.17.07c-.05.04-.08.11-.08.16v3.4c0 .07.03.12.08.16.05.04.11.07.17.07h3.77c.07 0 .12-.03.17-.07.05-.04.08-.11.08-.16v-3.4c0-.07-.03-.12-.08-.16a.241.241 0 0 0-.17-.07zm11.12-1.14c.42 0 .75.13 1.05.4.28.27.43.59.43.98v4.79h-1.22v-4.8c0-.07-.03-.12-.08-.16a.294.294 0 0 0-.19-.07h-2.61a.26.26 0 0 0-.17.07c-.05.04-.08.11-.08.16v4.79h-1.24v-4.79c0-.07-.03-.12-.08-.16a.284.284 0 0 0-.17-.07h-2.62a.26.26 0 0 0-.17.07c-.05.04-.08.11-.08.16v4.79H84.4V9.92h8.47zm7.92 0c.42 0 .77.13 1.05.4s.43.59.43.98v2.27h-5.5v1.13c0 .07.03.12.08.16.05.04.11.07.17.07h5.24v1.14h-5.24c-.42 0-.77-.13-1.05-.4a1.31 1.31 0 0 1-.43-.98v-3.4c0-.38.15-.71.43-.98s.63-.4 1.05-.4h3.77v.01zm-4.02 2.5h4.26v-1.13c0-.07-.03-.12-.08-.16a.284.284 0 0 0-.17-.07h-3.77a.26.26 0 0 0-.17.07c-.05.04-.08.11-.08.16v1.13h.01z" fill="#FFF"></path></g><use fill="#FFF" fill-opacity=".9" xlink:href="#poxy-injected-svg-5-a"></use><g fill-rule="nonzero"><path d="M26.57 9.76l-4.91-4.5-.69.75 4.09 3.75H8.94l4.09-3.75-.69-.75-4.91 4.5v2.97c0 1.34 1.29 2.43 2.88 2.43h3.03c1.59 0 2.88-1.09 2.88-2.43v-1.95h1.57v1.95c0 1.34 1.29 2.43 2.88 2.43h3.03c1.59 0 2.88-1.09 2.88-2.43l-.01-2.97z" fill="#DDA4CA"></path><path d="M26.57 9.34l-4.91-4.5-.69.75 4.09 3.75H8.94l4.09-3.75-.69-.75-4.91 4.5v2.97c0 1.34 1.29 2.43 2.88 2.43h3.03c1.59 0 2.88-1.09 2.88-2.43v-1.95h1.57v1.95c0 1.34 1.29 2.43 2.88 2.43h3.03c1.59 0 2.88-1.09 2.88-2.43l-.01-2.97z" fill="#261120"></path></g></g></svg></a><a class="poxy-external" href="https://gitter.im/marzer/tomlplusplus" target="_blank"><svg aria-label="chat: on gitter" class="poxy-injected-svg" height="20" id="poxy-injected-svg-6" role="img" version="1.1" width="90" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>chat: on gitter</title><g shape-rendering="crispEdges"><rect fill="#555" height="20" width="33"></rect><rect fill="#4c1" height="20" width="57" x="33"></rect></g><g fill="#fff" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="110" text-anchor="middle" text-rendering="geometricPrecision"><text fill="#fff" textLength="230" transform="scale(.1)" x="175" y="140">chat</text><text fill="#fff" textLength="470" transform="scale(.1)" x="605" y="140">on gitter</text></g></svg></a></span></div>
        <nav class="m-block m-default poxy-toc" id="poxy-toc">
          <h3>Contents</h3>
          <ul>
            <li><a href="#mainpage-features">Features</a></li>
            <li><a href="#mainpage-api-documentation">API documentation</a></li>
            <li>
              <a href="#mainpage-example">Basic examples</a>
              <ul>
                <li><a href="#mainpage-example-parsing-files">Parsing files</a></li>
                <li><a href="#mainpage-example-parsing-strings">Parsing strings and iostreams</a></li>
                <li><a href="#mainpage-example-parsing-without-exceptions">Handling errors without exceptions</a></li>
                <li><a href="#mainpage-example-custom-error-formatting">Custom error formatting</a></li>
                <li><a href="#mainpage-example-manipulations">Working with TOML data</a></li>
                <li><a href="#mainpage-example-serialization">Serializing as TOML, JSON and YAML</a></li>
                <li><a href="#mainpage-example-speed-up-compilation">Speeding up compilation</a></li>
              </ul>
            </li>
            <li>
              <a href="#mainpage-adding-lib">Adding toml++ to your project</a>
              <ul>
                <li><a href="#mainpage-adding-lib-old-school">"The old fashioned way"</a></li>
                <li><a href="#mainpage-adding-lib-conan">Conan</a></li>
                <li><a href="#mainpage-adding-lib-dds">DDS</a></li>
                <li><a href="#mainpage-adding-lib-meson">Meson</a></li>
                <li><a href="#mainpage-adding-lib-tipi">Tipi.build</a></li>
                <li><a href="#mainpage-adding-lib-vcpkg">Vcpkg</a></li>
                <li><a href="#mainpage-adding-lib-cmake-fetch-content">CMake FetchContent</a></li>
                <li><a href="#mainpage-adding-lib-git-submodules">Git submodules</a></li>
                <li><a href="#mainpage-adding-lib-other">Other environments and package managers</a></li>
                <li><a href="#mainpage-adding-lib-python">Special mention: Python</a></li>
              </ul>
            </li>
            <li><a href="#mainpage-configuration">Library configuration options</a></li>
            <li><a href="#mainpage-contributing">Contributing</a></li>
            <li><a href="#mainpage-license">License</a></li>
            <li><a href="#mainpage-contact">Contacting the author</a></li>
          </ul>
        </nav>
<section id="mainpage-features"><h2><a href="#mainpage-features">Features</a></h2><ul><li>Header-only (optional!)</li><li>Module support</li><li>Supports the latest <a class="poxy-external" href="https://toml.io/" target="_blank">TOML</a> release (<a class="poxy-external" href="https://toml.io/en/v1.0.0" target="_blank">v1.0.0</a>), plus optional support for some unreleased TOML features</li><li>Passes all tests in the <a class="poxy-external" href="https://github.com/BurntSushi/toml-test" target="_blank">toml-test</a> suite</li><li>Supports serializing to JSON and YAML</li><li>Proper UTF-8 handling (incl. BOM)</li><li>C++17 (plus some C++20 features where available, e.g. experimental support for <a class="m-doc poxy-injected poxy-external poxy-cppreference" href="https://en.cppreference.com/w/cpp/language/types#Character_types" target="_blank">char8_t</a> strings)</li><li>Doesn't require RTTI</li><li>Works with or without exceptions</li><li>Tested on Clang (8+), GCC (8+) and MSVC (VS2019)</li><li>Tested on x64, x86 and ARM</li></ul></section><section id="mainpage-api-documentation"><h2><a href="#mainpage-api-documentation">API documentation</a></h2><p>You're looking at it! Browse the docs using the links at the top of the page. You can search from anywhere by pressing the TAB key.</p></section><section id="mainpage-example"><h2><a href="#mainpage-example">Basic examples</a></h2><section id="mainpage-example-parsing-files"><h3><a href="#mainpage-example-parsing-files">Parsing files</a></h3><p>Call <a class="m-doc" href="namespacetoml.html#a8dbc58dad43c3b66f4476a7131f5741a">toml::<wbr/>parse_file()</a> and work with the <a class="m-doc" href="classtoml_1_1table.html">toml::<wbr/>table</a> you get back, or handle any <a class="m-doc" href="classtoml_1_1parse__error.html">toml::<wbr/>parse_error</a> that gets thrown:</p><pre class="m-code"><span class="cp">#include</span> <span class="cpf">&lt;iostream&gt;</span>
<span class="cp">#include</span> <span class="cpf">&lt;toml++/toml.hpp&gt;</span>
<span class="c1">// or alternatively:</span>
<span class="k">import</span> <span class="n">tomlplusplus</span><span class="p">;</span> <span class="c1">// if C++20 or later</span>

<span class="k">int</span> <span class="nf">main</span><span class="p">(</span><span class="k">int</span> <span class="n">argc</span><span class="p">,</span> <span class="k">char</span><span class="err">\</span><span class="o">*</span><span class="err">\</span><span class="o">*</span> <span class="n">argv</span><span class="p">)</span>
<span class="p">{</span>
    <span class="nn">toml</span><span class="o">::</span><span class="nc">table</span> <span class="n">tbl</span><span class="p">;</span>
    <span class="k">try</span>
    <span class="p">{</span>
        <span class="n">tbl</span> <span class="o">=</span> <span class="nn">toml</span><span class="o">::</span><span class="nf">parse_file</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span>
        <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="n">tbl</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="k">catch</span> <span class="p">(</span><span class="k">const</span> <span class="nn">toml</span><span class="o">::</span><span class="nc"><a class="m-doc poxy-injected" href="classtoml_1_1parse__error.html">parse_error</a></span><span class="o">&amp;</span> <span class="n">err</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="nn">std</span><span class="o">::</span><span class="nc">cerr</span> <span class="o">&lt;&lt;</span> <span class="s">"Parsing failed:</span><span class="se">\n</span><span class="s">"</span> <span class="o">&lt;&lt;</span> <span class="n">err</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
        <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span></pre><aside class="m-note m-default"><h4>See also</h4></aside><ul><li><a class="m-doc" href="namespacetoml.html#a8dbc58dad43c3b66f4476a7131f5741a">toml::<wbr/>parse_file()</a></li><li><a class="m-doc" href="classtoml_1_1table.html">toml::<wbr/>table</a></li><li><a class="m-doc" href="classtoml_1_1parse__error.html">toml::<wbr/>parse_error</a></li></ul></section><section id="mainpage-example-parsing-strings"><h3><a href="#mainpage-example-parsing-strings">Parsing strings and iostreams</a></h3><p>Call <a class="m-doc" href="namespacetoml.html#ada8654fb4ceef15c20fc1d5e0cc734dd">toml::<wbr/>parse()</a> and work with the <a class="m-doc" href="classtoml_1_1table.html">toml::<wbr/>table</a> you get back, or handle any <a class="m-doc" href="classtoml_1_1parse__error.html">toml::<wbr/>parse_error</a> that gets thrown:</p><pre class="m-code"><p class="m-note m-success poxy-godbolt"><a class="poxy-external poxy-godbolt" href="https://godbolt.org/z/NsR-xf" target="_blank">Try this code on Compiler Explorer</a></p><span class="cp">#include</span> <span class="cpf">&lt;iostream&gt;</span>
<span class="cp">#include</span> <span class="cpf">&lt;sstream&gt;</span>
<span class="cp">#include</span> <span class="cpf">&lt;toml++/toml.hpp&gt;</span>
<span class="k">using</span> <span class="k">namespace</span> <span class="nn">std</span><span class="o">::</span><span class="nn">string_view_literals</span><span class="p">;</span>

<span class="k">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
    <span class="k">static</span> <span class="k">constexpr</span> <span class="nn">std</span><span class="o">::</span><span class="nc">string_view</span> <span class="n">some_toml</span> <span class="o">=</span> <span class="sa">R</span><span class="s">"</span><span class="dl">(</span>
<span class="s">        [library]</span>
<span class="s">        name = "toml++"</span>
<span class="s">        authors = ["Mark Gillard &lt;mark.gillard@outlook.com.au&gt;"]</span>
<span class="s">        cpp = 17</span>
<span class="s">    </span><span class="dl">)</span><span class="s">"sv</span><span class="p">;</span>

    <span class="k">try</span>
    <span class="p">{</span>
        <span class="c1">// parse directly from a string view:</span>
        <span class="p">{</span>
        <span class="nn">toml</span><span class="o">::</span><span class="nc">table</span> <span class="n">tbl</span> <span class="o">=</span> <span class="nn">toml</span><span class="o">::</span><span class="nf">parse</span><span class="p">(</span><span class="n">some_toml</span><span class="p">);</span>
        <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="n">tbl</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="c1">// parse from a string stream:</span>
        <span class="p">{</span>
        <span class="nn">std</span><span class="o">::</span><span class="nc">stringstream</span> <span class="n">ss</span><span class="p">{</span> <span class="nn">std</span><span class="o">::</span><span class="nc">string</span><span class="p">{</span> <span class="n">some_toml</span> <span class="p">}</span> <span class="p">};</span>
        <span class="nn">toml</span><span class="o">::</span><span class="nc">table</span> <span class="n">tbl</span> <span class="o">=</span> <span class="nn">toml</span><span class="o">::</span><span class="nf">parse</span><span class="p">(</span><span class="n">ss</span><span class="p">);</span>
        <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="n">tbl</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
        <span class="p">}</span>
    <span class="p">}</span>
    <span class="k">catch</span> <span class="p">(</span><span class="k">const</span> <span class="nn">toml</span><span class="o">::</span><span class="nc"><a class="m-doc poxy-injected" href="classtoml_1_1parse__error.html">parse_error</a></span><span class="o">&amp;</span> <span class="n">err</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="nn">std</span><span class="o">::</span><span class="nc">cerr</span> <span class="o">&lt;&lt;</span> <span class="s">"Parsing failed:</span><span class="se">\n</span><span class="s">"</span> <span class="o">&lt;&lt;</span> <span class="n">err</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
        <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>

<span class="p">}</span></pre><pre class="m-console"><span class="go">[library]</span>
<span class="go">authors = [ 'Mark Gillard &lt;mark.gillard@outlook.com.au&gt;' ]</span>
<span class="go">cpp = 17</span>
<span class="go">name = 'toml++'</span>

<span class="go">[library]</span>
<span class="go">authors = [ 'Mark Gillard &lt;mark.gillard@outlook.com.au&gt;' ]</span>
<span class="go">cpp = 17</span>
<span class="go">name = 'toml++'</span></pre><aside class="m-note m-default"><h4>See also</h4></aside><ul><li><a class="m-doc" href="namespacetoml.html#a8dbc58dad43c3b66f4476a7131f5741a">toml::<wbr/>parse_file()</a></li><li><a class="m-doc" href="classtoml_1_1table.html">toml::<wbr/>table</a></li><li><a class="m-doc" href="classtoml_1_1parse__error.html">toml::<wbr/>parse_error</a></li></ul></section><section id="mainpage-example-parsing-without-exceptions"><h3><a href="#mainpage-example-parsing-without-exceptions">Handling errors without exceptions</a></h3><p>Can't (or won't) use exceptions? That's fine too. You can disable exceptions in your compiler flags and/or explicitly disable the library's use of them by setting the option <a class="m-doc" href="group__configuration.html#ga93097ecd88ca4bca393f60a78bda643b">TOML_<wbr/>EXCEPTIONS</a> to <code>0</code>. In either case, the parsing functions return a <a class="m-doc" href="classtoml_1_1parse__result.html">toml::<wbr/>parse_result</a> instead of a <a class="m-doc" href="classtoml_1_1table.html">toml::<wbr/>table</a>:</p><pre class="m-code"><span class="cp">#include</span> <span class="cpf">&lt;iostream&gt;</span>

<span class="cp">#define </span><span class="fm">TOML_EXCEPTIONS</span><span class="cp"> 0 </span><span class="c1">// only necessary if you've left them enabled in your compiler</span>
<span class="cp">#include</span> <span class="cpf">&lt;toml++/toml.hpp&gt;</span>

<span class="k">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
    <span class="nn">toml</span><span class="o">::</span><span class="nc"><a class="m-doc poxy-injected" href="classtoml_1_1parse__result.html">parse_result</a></span> <span class="n">result</span> <span class="o">=</span> <span class="nn">toml</span><span class="o">::</span><span class="nf">parse_file</span><span class="p">(</span><span class="s">"configuration.toml"</span><span class="p">);</span>

    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">result</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="nn">std</span><span class="o">::</span><span class="nc">cerr</span> <span class="o">&lt;&lt;</span> <span class="s">"Parsing failed:</span><span class="se">\n</span><span class="s">"</span> <span class="o">&lt;&lt;</span> <span class="n">result</span><span class="p">.</span><span class="nf">error</span><span class="p">()</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
        <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="nf">do_stuff_with_your_config</span><span class="p">(</span><span class="nn">std</span><span class="o">::</span><span class="nf">move</span><span class="p">(</span><span class="n">result</span><span class="p">).</span><span class="nf">table</span><span class="p">());</span> <span class="c1">// 'steal' the table from the result</span>
    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span></pre></section><section id="mainpage-example-custom-error-formatting"><h3><a href="#mainpage-example-custom-error-formatting">Custom error formatting</a></h3><p>The examples above use an overloaded <code>operator&lt;&lt;</code> with ostreams to print basic error messages, and look like this:</p><pre class="m-console"><span class="go">Error while parsing key: expected bare key starting character or string delimiter, saw '?'</span>
<span class="gp gp-VirtualEnv">(error occurred at line 2, column 5)</span></pre><p>The library doesn't natively support error colouring in TTY environments, but instead provides the requisite information for you to build that and any other custom error handling yourself if necessary via <a class="m-doc" href="classtoml_1_1parse__error.html">toml::<wbr/>parse_error</a>'s source() and description() members:</p><pre class="m-code"><span class="nn">toml</span><span class="o">::</span><span class="nc">table</span> <span class="n">tbl</span><span class="p">;</span>
<span class="k">try</span>
<span class="p">{</span>
    <span class="n">tbl</span> <span class="o">=</span> <span class="nn">toml</span><span class="o">::</span><span class="nf">parse_file</span><span class="p">(</span><span class="s">"configuration.toml"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">catch</span> <span class="p">(</span><span class="k">const</span> <span class="nn">toml</span><span class="o">::</span><span class="nc"><a class="m-doc poxy-injected" href="classtoml_1_1parse__error.html">parse_error</a></span><span class="o">&amp;</span> <span class="n">err</span><span class="p">)</span>
<span class="p">{</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cerr</span>
        <span class="o">&lt;&lt;</span> <span class="s">"Error parsing file '"</span> <span class="o">&lt;&lt;</span> <span class="err">\</span><span class="o">*</span><span class="n">err</span><span class="p">.</span><span class="nf">source</span><span class="p">().</span><span class="n">path</span>
        <span class="o">&lt;&lt;</span> <span class="s">"':</span><span class="se">\n</span><span class="s">"</span> <span class="o">&lt;&lt;</span> <span class="n">err</span><span class="p">.</span><span class="nf">description</span><span class="p">()</span>
        <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s"> ("</span> <span class="o">&lt;&lt;</span> <span class="n">err</span><span class="p">.</span><span class="nf">source</span><span class="p">().</span><span class="n">begin</span> <span class="o">&lt;&lt;</span> <span class="s">")</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
<span class="p">}</span></pre><aside class="m-note m-default"><h4>See also</h4></aside><ul><li><a class="m-doc" href="classtoml_1_1parse__error.html">toml::<wbr/>parse_error</a></li><li><a class="m-doc" href="structtoml_1_1source__region.html">toml::<wbr/>source_region</a></li><li><a class="m-doc" href="structtoml_1_1source__position.html">toml::<wbr/>source_position</a></li></ul></section><section id="mainpage-example-manipulations"><h3><a href="#mainpage-example-manipulations">Working with TOML data</a></h3><p>A TOML document is a tree of values, arrays and tables, represented as the <a class="m-doc" href="classtoml_1_1value.html">toml::<wbr/>value</a>, <a class="m-doc" href="classtoml_1_1array.html">toml::<wbr/>array</a> and <a class="m-doc" href="classtoml_1_1table.html">toml::<wbr/>table</a>, respectively. All three inherit from <a class="m-doc" href="classtoml_1_1node.html">toml::<wbr/>node</a>, and can be easily accessed via the <a class="m-doc" href="classtoml_1_1node__view.html">toml::<wbr/>node_view</a>:</p><pre class="m-code"><p class="m-note m-success poxy-godbolt"><a class="poxy-external poxy-godbolt" href="https://godbolt.org/z/TnevafTKd" target="_blank">Try this code on Compiler Explorer</a></p><span class="cp">#include</span> <span class="cpf">&lt;iostream&gt;</span>
<span class="cp">#include</span> <span class="cpf">&lt;toml++/toml.hpp&gt;</span>
<span class="k">using</span> <span class="k">namespace</span> <span class="nn">std</span><span class="o">::</span><span class="nn">string_view_literals</span><span class="p">;</span>

<span class="k">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
    <span class="k">static</span> <span class="k">constexpr</span> <span class="k">auto</span> <span class="n">source</span> <span class="o">=</span> <span class="sa">R</span><span class="s">"</span><span class="dl">(</span>
<span class="s">        str = "hello world"</span>

<span class="s">        numbers = [ 1, 2, 3, "four", 5.0 ]</span>
<span class="s">        vegetables = [ "tomato", "onion", "mushroom", "lettuce" ]</span>
<span class="s">        minerals = [ "quartz", "iron", "copper", "diamond" ]</span>

<span class="s">        [animals]</span>
<span class="s">        cats = [ "tiger", "lion", "puma" ]</span>
<span class="s">        birds = [ "macaw", "pigeon", "canary" ]</span>
<span class="s">        fish = [ "salmon", "trout", "carp" ]</span>
<span class="s">    </span><span class="dl">)</span><span class="s">"sv</span><span class="p">;</span>
    <span class="nn">toml</span><span class="o">::</span><span class="nc">table</span> <span class="n">tbl</span> <span class="o">=</span> <span class="nn">toml</span><span class="o">::</span><span class="nf">parse</span><span class="p">(</span><span class="n">source</span><span class="p">);</span>

    <span class="c1">// different ways of directly querying data</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">optional</span><span class="o">&lt;</span><span class="nn">std</span><span class="o">::</span><span class="nc">string_view</span><span class="o">&gt;</span> <span class="n">str1</span> <span class="o">=</span> <span class="n">tbl</span><span class="p">[</span><span class="s">"str"</span><span class="p">].</span><span class="n">value</span><span class="o">&lt;</span><span class="nn">std</span><span class="o">::</span><span class="nc">string_view</span><span class="o">&gt;</span><span class="p">();</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">optional</span><span class="o">&lt;</span><span class="nn">std</span><span class="o">::</span><span class="nc">string</span><span class="o">&gt;</span>      <span class="n">str2</span> <span class="o">=</span> <span class="n">tbl</span><span class="p">[</span><span class="s">"str"</span><span class="p">].</span><span class="n">value</span><span class="o">&lt;</span><span class="nn">std</span><span class="o">::</span><span class="nc">string</span><span class="o">&gt;</span><span class="p">();</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">string_view</span>                <span class="n">str3</span> <span class="o">=</span> <span class="n">tbl</span><span class="p">[</span><span class="s">"str"</span><span class="p">].</span><span class="nf">value_or</span><span class="p">(</span><span class="s">""sv</span><span class="p">);</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">string</span><span class="o">&amp;</span>                    <span class="n">str4</span> <span class="o">=</span> <span class="n">tbl</span><span class="p">[</span><span class="s">"str"</span><span class="p">].</span><span class="n">ref</span><span class="o">&lt;</span><span class="nn">std</span><span class="o">::</span><span class="nc">string</span><span class="o">&gt;</span><span class="p">();</span> <span class="c1">// ~~dangerous~~</span>

    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="o">*</span><span class="n">str1</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="o">*</span><span class="n">str2</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="n">str3</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="n">str4</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>

    <span class="c1">// get a <a class="m-doc poxy-injected" href="classtoml_1_1node__view.html">toml::node_view</a> of the element 'numbers' using operator[]</span>
    <span class="k">auto</span> <span class="n">numbers</span> <span class="o">=</span> <span class="n">tbl</span><span class="p">[</span><span class="s">"numbers"</span><span class="p">];</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"table has 'numbers': "</span> <span class="o">&lt;&lt;</span> <span class="o">!!</span><span class="n">numbers</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"numbers is an: "</span> <span class="o">&lt;&lt;</span> <span class="n">numbers</span><span class="p">.</span><span class="nf">type</span><span class="p">()</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"numbers: "</span> <span class="o">&lt;&lt;</span> <span class="n">numbers</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>

    <span class="c1">// get the underlying array object to do some more advanced stuff</span>
    <span class="k">if</span> <span class="p">(</span><span class="nn">toml</span><span class="o">::</span><span class="nc">array</span><span class="o">*</span> <span class="n">arr</span> <span class="o">=</span> <span class="n">numbers</span><span class="p">.</span><span class="nf">as_array</span><span class="p">())</span>
    <span class="p">{</span>
        <span class="c1">// visitation with for_each() helps deal with heterogeneous data</span>
        <span class="n">arr</span><span class="o">-&gt;</span><span class="nf">for_each</span><span class="p">([](</span><span class="k">auto</span><span class="o">&amp;&amp;</span> <span class="n">el</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="k">if</span> <span class="k">constexpr</span> <span class="p">(</span><span class="nn">toml</span><span class="o">::</span><span class="n">is_number</span><span class="o">&lt;</span><span class="k">decltype</span><span class="p">(</span><span class="n">el</span><span class="p">)</span><span class="o">&gt;</span><span class="p">)</span>
                <span class="p">(</span><span class="o">*</span><span class="n">el</span><span class="p">)</span><span class="o">++</span><span class="p">;</span>
            <span class="k">else</span> <span class="k">if</span> <span class="k">constexpr</span> <span class="p">(</span><span class="nn">toml</span><span class="o">::</span><span class="n">is_string</span><span class="o">&lt;</span><span class="k">decltype</span><span class="p">(</span><span class="n">el</span><span class="p">)</span><span class="o">&gt;</span><span class="p">)</span>
                <span class="n">el</span> <span class="o">=</span> <span class="s">"five"sv</span><span class="p">;</span>
        <span class="p">});</span>

        <span class="c1">// arrays are very similar to <a class="m-doc poxy-injected poxy-external poxy-cppreference" href="https://en.cppreference.com/w/cpp/container/vector" target="_blank">std::vector</a></span>
        <span class="n">arr</span><span class="o">-&gt;</span><span class="nf">push_back</span><span class="p">(</span><span class="mi">7</span><span class="p">);</span>
        <span class="n">arr</span><span class="o">-&gt;</span><span class="n">emplace_back</span><span class="o">&lt;</span><span class="nn">toml</span><span class="o">::</span><span class="nc">array</span><span class="o">&gt;</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">9</span><span class="p">);</span>
        <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"numbers: "</span> <span class="o">&lt;&lt;</span> <span class="n">numbers</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="c1">// node-views can be chained to quickly query deeper</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"cats: "</span> <span class="o">&lt;&lt;</span> <span class="n">tbl</span><span class="p">[</span><span class="s">"animals"</span><span class="p">][</span><span class="s">"cats"</span><span class="p">]</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"fish[1]: "</span> <span class="o">&lt;&lt;</span> <span class="n">tbl</span><span class="p">[</span><span class="s">"animals"</span><span class="p">][</span><span class="s">"fish"</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>

    <span class="c1">// can also be retrieved via absolute path</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"cats: "</span> <span class="o">&lt;&lt;</span> <span class="n">tbl</span><span class="p">.</span><span class="nf">at_path</span><span class="p">(</span><span class="s">"animals.cats"</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"fish[1]: "</span> <span class="o">&lt;&lt;</span> <span class="n">tbl</span><span class="p">.</span><span class="nf">at_path</span><span class="p">(</span><span class="s">"animals.fish[1]"</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>

    <span class="c1">// ...even if the element doesn't exist</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"dinosaurs: "</span> <span class="o">&lt;&lt;</span> <span class="n">tbl</span><span class="p">[</span><span class="s">"animals"</span><span class="p">][</span><span class="s">"dinosaurs"</span><span class="p">]</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span> <span class="c1">//no dinosaurs :(</span>

    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>

<span class="p">}</span></pre><pre class="m-console"><span class="go">hello world</span>
<span class="go">hello world</span>
<span class="go">hello world</span>
<span class="go">hello world</span>
<span class="go">table has 'numbers': 1</span>
<span class="go">numbers is an: array</span>
<span class="go">numbers: [ 1, 2, 3, 'four', 5.0 ]</span>
<span class="go">numbers: [ 2, 3, 4, 'five', 6.0, 7, [ 8, 9 ] ]</span>
<span class="go">cats: [ 'tiger', 'lion', 'puma' ]</span>
<span class="go">fish[1]: 'trout'</span>
<span class="go">dinosaurs:</span></pre><aside class="m-note m-default"><h4>See also</h4></aside><ul><li><a class="m-doc" href="classtoml_1_1node.html">toml::<wbr/>node</a></li><li><a class="m-doc" href="classtoml_1_1node__view.html">toml::<wbr/>node_view</a></li><li><a class="m-doc" href="classtoml_1_1value.html">toml::<wbr/>value</a></li><li><a class="m-doc" href="classtoml_1_1array.html">toml::<wbr/>array</a></li><li><a class="m-doc" href="classtoml_1_1table.html">toml::<wbr/>table</a></li></ul></section><section id="mainpage-example-serialization"><h3><a href="#mainpage-example-serialization">Serializing as TOML, JSON and YAML</a></h3><p>All toml++ data types have overloaded <code>operator&lt;&lt;</code> for ostreams, so 'serializing' a set of TOML data to actual TOML is done just by printing it to an ostream. Converting it to JSON and YAML is done in much the same way, but via a <a class="m-doc" href="classtoml_1_1json__formatter.html">toml::<wbr/>json_formatter</a> and <a class="m-doc" href="classtoml_1_1yaml__formatter.html">toml::<wbr/>yaml_formatter</a>.</p><pre class="m-code"><p class="m-note m-success poxy-godbolt"><a class="poxy-external poxy-godbolt" href="https://godbolt.org/z/srdfoWMq6" target="_blank">Try this code on Compiler Explorer</a></p><span class="cp">#include</span> <span class="cpf">&lt;iostream&gt;</span>
<span class="cp">#include</span> <span class="cpf">&lt;toml++/toml.hpp&gt;</span>

<span class="k">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
    <span class="k">auto</span> <span class="n">tbl</span> <span class="o">=</span> <span class="nn">toml</span><span class="o">::</span><span class="nc">table</span><span class="p">{</span>
        <span class="p">{</span> <span class="s">"lib"</span><span class="p">,</span> <span class="s">"toml++"</span> <span class="p">},</span>
        <span class="p">{</span> <span class="s">"cpp"</span><span class="p">,</span> <span class="nn">toml</span><span class="o">::</span><span class="nc">array</span><span class="p">{</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="s">"and beyond"</span> <span class="p">}</span> <span class="p">},</span>
        <span class="p">{</span> <span class="s">"toml"</span><span class="p">,</span> <span class="nn">toml</span><span class="o">::</span><span class="nc">array</span><span class="p">{</span> <span class="s">"1.0.0"</span><span class="p">,</span> <span class="s">"and beyond"</span> <span class="p">}</span> <span class="p">},</span>
        <span class="p">{</span> <span class="s">"repo"</span><span class="p">,</span> <span class="s">"https://github.com/marzer/tomlplusplus/"</span> <span class="p">},</span>
        <span class="p">{</span> <span class="s">"author"</span><span class="p">,</span> <span class="nn">toml</span><span class="o">::</span><span class="nc">table</span><span class="p">{</span>
                <span class="p">{</span> <span class="s">"name"</span><span class="p">,</span> <span class="s">"Mark Gillard"</span> <span class="p">},</span>
                <span class="p">{</span> <span class="s">"github"</span><span class="p">,</span> <span class="s">"https://github.com/marzer"</span> <span class="p">},</span>
                <span class="p">{</span> <span class="s">"twitter"</span><span class="p">,</span> <span class="s">"https://twitter.com/marzer8789"</span> <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>
    <span class="p">};</span>

    <span class="c1">// serializing as TOML</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"###### TOML ######"</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n\n</span><span class="s">"</span><span class="p">;</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="n">tbl</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n\n</span><span class="s">"</span><span class="p">;</span>

    <span class="c1">// serializing as JSON using <a class="m-doc poxy-injected" href="classtoml_1_1json__formatter.html">toml::json_formatter</a>:</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"###### JSON ######"</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n\n</span><span class="s">"</span><span class="p">;</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="nn">toml</span><span class="o">::</span><span class="nc"><a class="m-doc poxy-injected" href="classtoml_1_1json__formatter.html">json_formatter</a></span><span class="p">{</span> <span class="n">tbl</span> <span class="p">}</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n\n</span><span class="s">"</span><span class="p">;</span>

    <span class="c1">// serializing as YAML using <a class="m-doc poxy-injected" href="classtoml_1_1yaml__formatter.html">toml::yaml_formatter</a>:</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"###### YAML ######"</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n\n</span><span class="s">"</span><span class="p">;</span>
    <span class="nn">std</span><span class="o">::</span><span class="nc">cout</span> <span class="o">&lt;&lt;</span> <span class="nn">toml</span><span class="o">::</span><span class="nc"><a class="m-doc poxy-injected" href="classtoml_1_1yaml__formatter.html">yaml_formatter</a></span><span class="p">{</span> <span class="n">tbl</span> <span class="p">}</span> <span class="o">&lt;&lt;</span> <span class="s">"</span><span class="se">\n\n</span><span class="s">"</span><span class="p">;</span>

    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>

<span class="p">}</span></pre><pre class="m-console"><span class="gp">#</span><span class="c1">##### TOML</span>

<span class="go">cpp = [ 17, 20, 'and beyond' ]</span>
<span class="go">lib = 'toml++'</span>
<span class="go">repo = 'https://github.com/marzer/tomlplusplus/'</span>
<span class="go">toml = [ '1.0.0', 'and beyond' ]</span>

<span class="go">[author]</span>
<span class="go">github = 'https://github.com/marzer'</span>
<span class="go">name = 'Mark Gillard'</span>
<span class="go">twitter = 'https://twitter.com/marzer8789'</span>

<span class="gp">#</span><span class="c1">##### JSON</span>

<span class="go">{</span>
<span class="go">    "author" : {</span>
<span class="go">        "github" : "https://github.com/marzer",</span>
<span class="go">        "name" : "Mark Gillard",</span>
<span class="go">        "twitter" : "https://twitter.com/marzer8789"</span>
<span class="go">    },</span>
<span class="go">    "cpp" : [</span>
<span class="go">        17,</span>
<span class="go">        20,</span>
<span class="go">        "and beyond"</span>
<span class="go">    ],</span>
<span class="go">    "lib" : "toml++",</span>
<span class="go">    "repo" : "https://github.com/marzer/tomlplusplus/",</span>
<span class="go">    "toml" : [</span>
<span class="go">        "1.0.0",</span>
<span class="go">        "and beyond"</span>
<span class="go">    ]</span>
<span class="go">}</span>

<span class="gp">#</span><span class="c1">##### YAML</span>

<span class="go">author:</span>
<span class="go">github: 'https://github.com/marzer'</span>
<span class="go">name: 'Mark Gillard'</span>
<span class="go">twitter: 'https://twitter.com/marzer8789'</span>
<span class="go">cpp:</span>
<span class="go">-   17</span>
<span class="go">-   20</span>
<span class="go">-   'and beyond'</span>
<span class="go">lib: 'toml++'</span>
<span class="go">repo: 'https://github.com/marzer/tomlplusplus/'</span>
<span class="go">toml:</span>
<span class="go">-   '1.0.0'</span>
<span class="go">-   'and beyond'</span></pre><aside class="m-note m-default"><h4>See also</h4></aside><ul><li><a class="m-doc" href="classtoml_1_1toml__formatter.html">toml::<wbr/>toml_formatter</a></li><li><a class="m-doc" href="classtoml_1_1json__formatter.html">toml::<wbr/>json_formatter</a></li><li><a class="m-doc" href="classtoml_1_1yaml__formatter.html">toml::<wbr/>yaml_formatter</a></li></ul></section><section id="mainpage-example-speed-up-compilation"><h3><a href="#mainpage-example-speed-up-compilation">Speeding up compilation</a></h3><p>Because toml++ is a header-only library of nontrivial size you might find that compilation times noticeably increase after you add it to your project, especially if you add the library's header somewhere that's visible from a large number of translation units. You can counter this by disabling header-only mode and explicitly controlling where the library's implementation is compiled.</p><p><strong>Step 1: Set <a class="m-doc" href="group__configuration.html#ga8219bfd7e75587516385b6022b28abc2">TOML_<wbr/>HEADER_<wbr/>ONLY</a> to <code>0</code> before including toml++</strong></p><p>This must be the same everywhere, so either set it as a global <code>#define</code> in your build system, or do it manually before including toml++ in some global header that's used everywhere in your project:</p><pre class="m-code"><span class="c1">// global_header_that_includes_toml++.h</span>

<span class="cp">#define </span><span class="fm">TOML_HEADER_ONLY</span><span class="cp"> 0</span>
<span class="cp">#include</span> <span class="cpf">&lt;toml.hpp&gt;</span></pre><p><strong>Step 2: Define <a class="m-doc" href="group__configuration.html#ga27ee69835a1ddff9dbaf3015b4b08a11">TOML_<wbr/>IMPLEMENTATION</a> before including toml++ in one specific translation unit</strong></p><pre class="m-code"><span class="c1">// some_code_file.cpp</span>

<span class="cp">#define </span><span class="fm">TOML_IMPLEMENTATION</span>
<span class="cp">#include</span> <span class="cpf">"global_header_that_includes_toml++.hpp"</span></pre><p><strong>Bonus Step: Disable any library features you don't need</strong></p><p>Some library features can be disabled wholesale so you can avoid paying their the compilation cost if you don't need them. For example, if all you need to do is serialize some code-generated TOML and don't actually need the parser at all you, can set <a class="m-doc" href="group__configuration.html#ga121912d75d4624de6ab6854e41d8a852">TOML_<wbr/>ENABLE_<wbr/>PARSER</a> to <code>0</code> to disable the parser altogether. This can yield fairly significant compilation speedups since the parser accounts for a good chunk of the library's code.</p><aside class="m-note m-default"><h4>See also</h4><p><a class="m-doc" href="group__configuration.html">Library Configuration</a></p></aside></section></section><section id="mainpage-adding-lib"><h2><a href="#mainpage-adding-lib">Adding toml++ to your project</a></h2><section id="mainpage-adding-lib-old-school"><h3><a href="#mainpage-adding-lib-old-school">"The old fashioned way"</a></h3><p class="m-note m-default">The library comes in two flavours, 🍦️ Single-header and 🍨️ Regular. The API is the same for both.</p><h4>🍦️ Single-header flavour</h4><ol><li>Drop <a class="poxy-external" href="https://raw.githubusercontent.com/marzer/tomlplusplus/master/toml.hpp" target="_blank">toml.hpp</a> wherever you like in your source tree</li><li>There is no step two</li></ol><h4>🍨️ Regular flavour</h4><ol><li>Clone <a class="poxy-external" href="https://github.com/marzer/tomlplusplus" target="_blank">the repository</a> from GitHub</li><li>Add <code>tomlplusplus/include</code> to your include paths, or for optional module support add <code>tomlplusplus/modules</code> as well and enable <code>TOMLPLUSPLUS_BUILD_MODULES</code></li><li><code>#include &lt;toml++/toml.hpp&gt;</code> (or <code>import tomlplusplus;</code>)</li></ol></section><section id="mainpage-adding-lib-conan"><h3><a href="#mainpage-adding-lib-conan">Conan</a></h3><p>Add <code>tomlplusplus/3.4.0</code> to your conanfile.</p></section><section id="mainpage-adding-lib-dds"><h3><a href="#mainpage-adding-lib-dds">DDS</a></h3><p>Add <code>tomlpp</code> to your <code>package.json5</code>, e.g.:</p><pre class="m-code"><span class="nx">depends</span><span class="o">:</span> <span class="p">[</span>
    <span class="s1">'tomlpp^3.4.0'</span><span class="p">,</span>
<span class="p">]</span></pre><aside class="m-note m-default"><h4>See also</h4><p><a class="poxy-external" href="https://dds.pizza/" target="_blank">What is DDS?</a></p></aside></section><section id="mainpage-adding-lib-meson"><h3><a href="#mainpage-adding-lib-meson">Meson</a></h3><p>You can install the wrap with:</p><pre class="m-console"><span class="go">meson wrap install tomlplusplus</span></pre><p>After that, you can use it like a regular dependency:</p><pre class="m-code"><span class="n">tomlplusplus_dep</span> <span class="o">=</span> <span class="nf">dependency</span><span class="p">(</span><span class="s1">'tomlplusplus'</span><span class="p">)</span></pre><p>You can also add it as a subproject directly.</p></section><section id="mainpage-adding-lib-tipi"><h3><a href="#mainpage-adding-lib-tipi">Tipi.build</a></h3><p><code>tomlplusplus</code> can be easily used in <a class="poxy-external" href="https://tipi.build" target="_blank">tipi.build</a> projects by adding the following entry to your <code>.tipi/deps</code>:</p><pre class="m-code"><span class="p">{</span>
    <span class="s2">"marzer/tomlplusplus"</span><span class="o">:</span> <span class="p">{</span> <span class="p">}</span>
<span class="p">}</span></pre></section><section id="mainpage-adding-lib-vcpkg"><h3><a href="#mainpage-adding-lib-vcpkg">Vcpkg</a></h3><pre class="m-console"><span class="go">vcpkg install tomlplusplus</span></pre></section><section id="mainpage-adding-lib-cmake-fetch-content"><h3><a href="#mainpage-adding-lib-cmake-fetch-content">CMake FetchContent</a></h3><pre class="m-code"><span class="nb">include</span><span class="p">(</span><span class="s">FetchContent</span><span class="p">)</span>
<span class="nb">FetchContent_Declare</span><span class="p">(</span>
    <span class="s">tomlplusplus</span>
    <span class="s">GIT_REPOSITORY</span> <span class="s">https://github.com/marzer/tomlplusplus.git</span>
    <span class="s">GIT_TAG</span> <span class="s">v3.4.0</span>
<span class="p">)</span>
<span class="nb">FetchContent_MakeAvailable</span><span class="p">(</span><span class="s">tomlplusplus</span><span class="p">)</span></pre><aside class="m-note m-default"><h4>See also</h4><p><a class="poxy-external" href="https://cmake.org/cmake/help/latest/module/FetchContent.html" target="_blank">What is FetchContent?</a></p></aside></section><section id="mainpage-adding-lib-git-submodules"><h3><a href="#mainpage-adding-lib-git-submodules">Git submodules</a></h3><pre class="m-console"><span class="go">git submodule add --depth 1 https://github.com/marzer/tomlplusplus.git tomlplusplus</span></pre></section><section id="mainpage-adding-lib-other"><h3><a href="#mainpage-adding-lib-other">Other environments and package managers</a></h3><p>The C++ tooling ecosystem is a fractal nightmare of unbridled chaos so naturally I'm not up-to-speed with all of the available packaging and integration options. I'm always happy to see new ones supported, though! If there's some integration you'd like to see and have the technical know-how to make it happen, feel free to make a pull request.</p></section><section id="mainpage-adding-lib-python"><h3><a href="#mainpage-adding-lib-python">Special mention: Python</a></h3><p>There exists a python wrapper library built around toml++ called <a class="poxy-external" href="https://github.com/bobfang1992/pytomlpp" target="_blank">pytomlpp</a> which is, at the time of writing, one of only two natively-compiled TOML libraries available for python, and thus one of the fastest options available:</p><pre class="m-console"><span class="go">Parsing data.toml 5000 times:</span>
<span class="go">pytomlpp: 0.694 s</span>
<span class="go">rtoml: 0.871 s ( 1.25x)</span>
<span class="go">tomli: 2.625 s ( 3.78x)</span>
<span class="go">toml: 5.642 s ( 8.12x)</span>
<span class="go">qtoml: 7.760 s (11.17x)</span>
<span class="go">tomlkit: 32.708 s (47.09x)</span></pre><p>Install it using <code>pip</code>:</p><pre class="m-console"><span class="go">pip install pytomlpp</span></pre><p>Note that I'm not the owner of that project, so if you wish to report a bug relating to the python implementation please do so at their repository, not on the main toml++ one.</p></section></section><section id="mainpage-configuration"><h2><a href="#mainpage-configuration">Library configuration options</a></h2><p>The library exposes a number of configuration options in the form of compiler <code>#defines</code>. Things like changing the <code>optional&lt;T&gt;</code> type, disabling header-only mode, et cetera. The full list of configurables can be found on the <a class="m-doc" href="group__configuration.html">Library Configuration</a> page.</p><aside class="m-note m-default"><h4>See also</h4><p><a class="m-doc" href="group__configuration.html">Library Configuration</a></p></aside></section><section id="mainpage-contributing"><h2><a href="#mainpage-contributing">Contributing</a></h2><p>Contributions are very welcome! Either by <a class="poxy-external" href="https://github.com/marzer/tomlplusplus/issues" target="_blank">reporting issues</a> or submitting pull requests. If you wish to submit a pull request, please see <a class="poxy-external" href="https://github.com/marzer/tomlplusplus/blob/master/CONTRIBUTING.md" target="_blank">CONTRIBUTING</a> for all the details you need to get going.</p></section><section id="mainpage-license"><h2><a href="#mainpage-license">License</a></h2><p>toml++ is licensed under the terms of the MIT license - see <a class="poxy-external" href="https://github.com/marzer/tomlplusplus/blob/master/LICENSE" target="_blank">LICENSE</a>.</p><p class="m-note m-default">If you're using the single-header version of the library you don't need to explicitly distribute the license file; it is embedded in the preamble at the top of the header.</p></section><section id="mainpage-contact"><h2><a href="#mainpage-contact">Contacting the author</a></h2><p>For bug reports and feature requests please use the <a class="poxy-external" href="https://github.com/marzer/tomlplusplus/issues" target="_blank">Github Issues</a> system. For anything else you're welcome to reach out via other means. In order of likely response speed:</p><ul><li>Twitter: <a class="poxy-external" href="https://twitter.com/marzer8789" target="_blank">marzer8789</a></li><li>Gitter: <a class="poxy-external" href="https://gitter.im/marzer/tomlplusplus" target="_blank">marzer/<wbr/>tomlplusplus</a> ("Discord for repos")</li><li>Email: <a class="poxy-external" href="mailto:mark.gillard@outlook.com.au" target="_blank">mark.gillard@outlook.com.au</a></li></ul></section>
      </div>
    </div>
  </div>
</article></main>
<div class="m-doc-search" id="search">
  <a href="#!" onclick="return hideSearch()"></a>
  <div class="m-container">
    <div class="m-row">
      <div class="m-col-m-8 m-push-m-2">
        <div class="m-doc-search-header m-text m-small">
          <div><span class="m-label m-default">Tab</span> / <span class="m-label m-default">T</span> to search, <span class="m-label m-default">Esc</span> to close</div>
          <div id="search-symbolcount">…</div>
        </div>
        <div class="m-doc-search-content">
          <form>
            <input autocomplete="off" autofocus="autofocus" disabled="disabled" id="search-input" name="q" placeholder="Loading …" spellcheck="false" type="search"/>
          </form>
          <noscript class="m-text m-danger m-text-center">Unlike everything else in the docs, the search functionality <em>requires</em> JavaScript.</noscript>
          <div class="m-text m-dim m-text-center" id="search-help">
            <p class="m-noindent">Search for symbols, directories, files, pages or
            modules. You can omit any prefix from the symbol or file path; adding a
            <code>:</code> or <code>/</code> suffix lists all members of given symbol or
            directory.</p>
            <p class="m-noindent">Use <span class="m-label m-dim">↓</span>
            / <span class="m-label m-dim">↑</span> to navigate through the list,
            <span class="m-label m-dim">Enter</span> to go.
            <span class="m-label m-dim">Tab</span> autocompletes common prefix, you can
            copy a link to the result using <span class="m-label m-dim">⌘</span>
            <span class="m-label m-dim">L</span> while <span class="m-label m-dim">⌘</span>
            <span class="m-label m-dim">M</span> produces a Markdown link.</p>
          </div>
          <div class="m-text m-warning m-text-center" id="search-notfound">Sorry, nothing was found.</div>
          <ul id="search-results"></ul>
        </div>
      </div>
    </div>
  </div>
</div>
<script src="search-v2.js"></script><script>install_mcss_search_shim();</script>
<script async="async" src="searchdata-v2.js"></script>
<footer><nav>
  <div class="m-container">
    <div class="m-row">
      <div class="m-col-l-10 m-push-l-1">
        
<a class="poxy-external" href="https://github.com/marzer/tomlplusplus" target="_blank">GitHub</a>
• <a class="poxy-external" href="https://github.com/marzer/tomlplusplus/issues" target="_blank">Report an issue</a>
• <a class="sponsor poxy-external" href="https://github.com/sponsors/marzer" target="_blank">Become a sponsor</a>
• <a class="poxy-external" href="https://github.com/marzer/tomlplusplus/blob/master/LICENSE" target="_blank">License</a>
• <a download="" href="toml++.tagfile.xml" target="_blank" type="text/xml">Doxygen tagfile</a>
<br/><br/>
Site generated using <a class="poxy-external" href="https://github.com/marzer/poxy/" target="_blank">Poxy</a>

      </div>
    </div>
  </div>
</nav></footer>


</body></html>