summaryrefslogtreecommitdiff
path: root/group__configuration.html
blob: 93000a78a4f6eb6a768c8fde807853f12bdb396d (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
<!DOCTYPE html>
<html lang="en"><head>
  <meta charset="utf-8"/>
  <title>Library Configuration module | 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">
<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="group__configuration.html">Version: HEAD</a><ol><li><a href="group__configuration.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">
        <h1>
          Library Configuration <span class="m-thin">module</span></h1>
        <p>Preprocessor macros for configuring library functionality.</p>
        <nav class="m-block m-default poxy-toc" id="poxy-toc">
          <h3>Contents</h3>
          <ul>
            <li>
              Reference
              <ul>
                <li><a href="#define-members">Defines</a></li>
              </ul>
            </li>
          </ul>
        </nav>
<p>Define these before including toml++ to alter the way it functions.</p><aside class="m-note m-default"><h4>Remark</h4><p>Some of these options have ABI implications; inline namespaces are used to prevent you from trying to link incompatible combinations together.</p></aside>
        <section id="define-members">
          <h2><a href="#define-members">Defines</a></h2>
          <dl class="m-doc">
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga8c407a8f6fe52a795db35be3f00393f8">TOML_ASSERT</a>(</span><span class="m-doc-wrap">expr)</span>
            </dt>
            <dd>Sets the assert function used by the library.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga2bfc7ae4747f15378d92249aadce019e">TOML_CALLCONV</a></span>
            </dt>
            <dd>Calling convention to apply to exported free/static functions.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga09204feb4a3ff5534623c2bd052dcec0">TOML_CONFIG_HEADER</a></span>
            </dt>
            <dd>An additional header to include before any other toml++ header files.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga5c13a4a38e4b663c78ab84b7c99845f4">TOML_DISABLE_CONDITIONAL_NOEXCEPT_LAMBDA</a></span>
            </dt>
            <dd>Disable using noexcept(&lt;condition&gt;) in lambda definitions within the toml++ library implementation.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#gac69eea7bc0905d58a6afc199982ed7ad">TOML_DISABLE_NOEXCEPT_NOEXCEPT</a></span>
            </dt>
            <dd>Disable using noexcept(noexcept(&lt;expression&gt;)) within the toml++ library implementation.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga56ab81041897681ac38ceba52a380b97">TOML_ENABLE_FLOAT16</a></span>
            </dt>
            <dd>Enable support for the built-in <code><a class="m-doc poxy-injected poxy-external" href="https://gcc.gnu.org/onlinedocs/gcc/Half-Precision.html" target="_blank">_Float16</a></code> type.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga9fc77582d9de77f59d2ddc9ae1f748ca">TOML_ENABLE_FORMATTERS</a></span>
            </dt>
            <dd>Sets whether the various formatter classes are enabled.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga121912d75d4624de6ab6854e41d8a852">TOML_ENABLE_PARSER</a></span>
            </dt>
            <dd>Sets whether the parser-related parts of the library are included.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga1110ff7d189a7738b9109d120f568b6b">TOML_ENABLE_UNRELEASED_FEATURES</a></span>
            </dt>
            <dd>Enables support for unreleased TOML language features not yet part of a <a class="poxy-external" href="https://github.com/toml-lang/toml/releases" target="_blank">numbered version</a>.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga94867db67c98e0e9d4fbb70690951fbf">TOML_ENABLE_WINDOWS_COMPAT</a></span>
            </dt>
            <dd>Enables the use of wide strings (<a class="m-doc poxy-injected poxy-external poxy-cppreference" href="https://en.cppreference.com/w/cpp/language/types#Character_types" target="_blank">wchar_t</a>, <a class="m-doc-external poxy-cppreference poxy-external" href="http://en.cppreference.com/w/cpp/string/basic_string.html" target="_blank">std::<wbr/>wstring</a>) in various places throughout the library when building for Windows.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga93097ecd88ca4bca393f60a78bda643b">TOML_EXCEPTIONS</a></span>
            </dt>
            <dd>Sets whether the library uses exceptions to report parsing failures.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga3d7aebf91431575688d573f09a17559a">TOML_EXPORTED_CLASS</a></span>
            </dt>
            <dd>An 'export' annotation to add to classes.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#gac40a454cde06de4e76df3d6d460a3544">TOML_EXPORTED_FREE_FUNCTION</a></span>
            </dt>
            <dd>An 'export' annotation to add to free functions.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#gadf515bb7a6b8ce6b14bf86c8961a63cb">TOML_EXPORTED_MEMBER_FUNCTION</a></span>
            </dt>
            <dd>An 'export' annotation to add to non-static class member functions.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga8436c6f378c73f3446a3b6f1e2c5e81c">TOML_EXPORTED_STATIC_FUNCTION</a></span>
            </dt>
            <dd>An 'export' annotation to add to <code>static</code> class member functions.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga8219bfd7e75587516385b6022b28abc2">TOML_HEADER_ONLY</a></span>
            </dt>
            <dd>Sets whether the library is entirely inline.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga27ee69835a1ddff9dbaf3015b4b08a11">TOML_IMPLEMENTATION</a></span>
            </dt>
            <dd>Enables the library's implementation when <a class="m-doc" href="#ga8219bfd7e75587516385b6022b28abc2">TOML_<wbr/>HEADER_<wbr/>ONLY</a> is disabled.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga9c2c03f867eb6d76a5f65b06eeb1186e">TOML_OPTIONAL_TYPE</a></span>
            </dt>
            <dd>Overrides the <code>optional&lt;T&gt;</code> type used by the library.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga11a3368da40938a6b5cfd898320706f7">TOML_SMALL_FLOAT_TYPE</a></span>
            </dt>
            <dd>If your codebase has an additional 'small' float type (e.g. half-precision), this tells toml++ about it.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc" href="#ga0722fa2c57da6360c7f2ba08c60e1a81">TOML_SMALL_INT_TYPE</a></span>
            </dt>
            <dd>If your codebase has an additional 'small' integer type (e.g. 24-bits), this tells toml++ about it.</dd>
          </dl>
        </section>
        <section>
          <h2>Define documentation</h2>
          <section class="m-doc-details" id="ga8c407a8f6fe52a795db35be3f00393f8"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga8c407a8f6fe52a795db35be3f00393f8">TOML_ASSERT</a>(</span><span class="m-doc-wrap">expr)</span>
            </h3>
            <p>Sets the assert function used by the library.</p>
<p>Defaults to the standard C <code>assert()</code>.</p>
          </div></section>
          <section class="m-doc-details" id="ga2bfc7ae4747f15378d92249aadce019e"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga2bfc7ae4747f15378d92249aadce019e">TOML_CALLCONV</a></span>
            </h3>
            <p>Calling convention to apply to exported free/static functions.</p>
<p>Not defined by default (let the compiler decide).</p>
          </div></section>
          <section class="m-doc-details" id="ga09204feb4a3ff5534623c2bd052dcec0"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga09204feb4a3ff5534623c2bd052dcec0">TOML_CONFIG_HEADER</a></span>
            </h3>
            <p>An additional header to include before any other toml++ header files.</p>
<p>Not defined by default.</p>
          </div></section>
          <section class="m-doc-details" id="ga5c13a4a38e4b663c78ab84b7c99845f4"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga5c13a4a38e4b663c78ab84b7c99845f4">TOML_DISABLE_CONDITIONAL_NOEXCEPT_LAMBDA</a></span>
            </h3>
            <p>Disable using noexcept(&lt;condition&gt;) in lambda definitions within the toml++ library implementation.</p>
<p>This macro offers a workaround to a bug in the old "legacy lambda processor" of Visual C++, which caused compile errors like "error C2057: expected constant expression", when it encountered such lambda's. These compile errors were reported by Kevin Dick, Jan 19, 2024, at <a class="poxy-external" href="https://github.com/marzer/tomlplusplus/issues/219" target="_blank">https:/<wbr/>/<wbr/>github.com/<wbr/>marzer/<wbr/>tomlplusplus/<wbr/>issues/<wbr/>219</a></p>
          </div></section>
          <section class="m-doc-details" id="gac69eea7bc0905d58a6afc199982ed7ad"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#gac69eea7bc0905d58a6afc199982ed7ad">TOML_DISABLE_NOEXCEPT_NOEXCEPT</a></span>
            </h3>
            <p>Disable using noexcept(noexcept(&lt;expression&gt;)) within the toml++ library implementation.</p>
<p>This macro offers a workaround to a bug in Visual C++ (Visual Studio 2022), which caused compile errors, saying: "error C3878: syntax error: unexpected token ',' following 'simple-type-specifier'"</p>
          </div></section>
          <section class="m-doc-details" id="ga56ab81041897681ac38ceba52a380b97"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga56ab81041897681ac38ceba52a380b97">TOML_ENABLE_FLOAT16</a></span>
            </h3>
            <p>Enable support for the built-in <code><a class="m-doc poxy-injected poxy-external" href="https://gcc.gnu.org/onlinedocs/gcc/Half-Precision.html" target="_blank">_Float16</a></code> type.</p>
<p>Defaults to <code>0</code>.</p>
          </div></section>
          <section class="m-doc-details" id="ga9fc77582d9de77f59d2ddc9ae1f748ca"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga9fc77582d9de77f59d2ddc9ae1f748ca">TOML_ENABLE_FORMATTERS</a></span>
            </h3>
            <p>Sets whether the various formatter classes are enabled.</p>
<p>Defaults to <code>1</code>.</p><aside class="m-note m-default"><h4>Remark</h4><p>If you don't need to re-serialize TOML data, setting <code>TOML_ENABLE_FORMATTERS</code> to <code>0</code> can improve compilation speed and reduce binary size.</p></aside><aside class="m-note m-default"><h4>See also</h4><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></aside>
          </div></section>
          <section class="m-doc-details" id="ga121912d75d4624de6ab6854e41d8a852"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga121912d75d4624de6ab6854e41d8a852">TOML_ENABLE_PARSER</a></span>
            </h3>
            <p>Sets whether the parser-related parts of the library are included.</p>
<p>Defaults to <code>1</code>.</p><aside class="m-note m-default"><h4>Remark</h4><p>If you don't parse any TOML from files or strings, setting <code>TOML_ENABLE_PARSER</code> to <code>0</code> can improve compilation speed and reduce binary size.</p></aside>
          </div></section>
          <section class="m-doc-details" id="ga1110ff7d189a7738b9109d120f568b6b"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga1110ff7d189a7738b9109d120f568b6b">TOML_ENABLE_UNRELEASED_FEATURES</a></span>
            </h3>
            <p>Enables support for unreleased TOML language features not yet part of a <a class="poxy-external" href="https://github.com/toml-lang/toml/releases" target="_blank">numbered version</a>.</p>
<p>Defaults to <code>0</code>.</p><aside class="m-note m-default"><h4>See also</h4><p><a class="poxy-external" href="https://github.com/marzer/tomlplusplus/blob/master/README.md#toml-language-support" target="_blank">TOML Language Support</a></p></aside>
          </div></section>
          <section class="m-doc-details" id="ga94867db67c98e0e9d4fbb70690951fbf"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga94867db67c98e0e9d4fbb70690951fbf">TOML_ENABLE_WINDOWS_COMPAT</a></span>
            </h3>
            <p>Enables the use of wide strings (<a class="m-doc poxy-injected poxy-external poxy-cppreference" href="https://en.cppreference.com/w/cpp/language/types#Character_types" target="_blank">wchar_t</a>, <a class="m-doc-external poxy-cppreference poxy-external" href="http://en.cppreference.com/w/cpp/string/basic_string.html" target="_blank">std::<wbr/>wstring</a>) in various places throughout the library when building for Windows.</p>
<p>Defaults to <code>1</code> when building for Windows, <code>0</code> otherwise. Has no effect when building for anything other than Windows.</p><aside class="m-note m-default"><h4>Remark</h4><p>This <strong>does not</strong> change the underlying string type used to represent TOML keys and string values; that will still be <a class="m-doc-external poxy-cppreference poxy-external" href="http://en.cppreference.com/w/cpp/string/basic_string.html" target="_blank">std::<wbr/>string</a>. This setting simply enables some narrow &lt;=&gt; wide string conversions when necessary at various interface boundaries.<br/><br/>If you're building for Windows and you have no need for Windows' "Pretends-to-be-unicode" wide strings, you can safely set this to <code>0</code>.</p></aside>
          </div></section>
          <section class="m-doc-details" id="ga93097ecd88ca4bca393f60a78bda643b"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga93097ecd88ca4bca393f60a78bda643b">TOML_EXCEPTIONS</a></span>
            </h3>
            <p>Sets whether the library uses exceptions to report parsing failures.</p>
<p>Defaults to <code>1</code> or <code>0</code> according to your compiler's exception mode.</p>
          </div></section>
          <section class="m-doc-details" id="ga3d7aebf91431575688d573f09a17559a"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga3d7aebf91431575688d573f09a17559a">TOML_EXPORTED_CLASS</a></span>
            </h3>
            <p>An 'export' annotation to add to classes.</p>
<p>Not defined by default.</p><aside class="m-note m-default"><h4>Remark</h4><p>You might override this with <code>__declspec(dllexport)</code> if you were building the library into the public API of a DLL on Windows.</p></aside>
          </div></section>
          <section class="m-doc-details" id="gac40a454cde06de4e76df3d6d460a3544"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#gac40a454cde06de4e76df3d6d460a3544">TOML_EXPORTED_FREE_FUNCTION</a></span>
            </h3>
            <p>An 'export' annotation to add to free functions.</p>
<p>Not defined by default.</p><aside class="m-note m-default"><h4>Remark</h4><p>You might override this with <code>__declspec(dllexport)</code> if you were building the library into the public API of a DLL on Windows.</p></aside>
          </div></section>
          <section class="m-doc-details" id="gadf515bb7a6b8ce6b14bf86c8961a63cb"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#gadf515bb7a6b8ce6b14bf86c8961a63cb">TOML_EXPORTED_MEMBER_FUNCTION</a></span>
            </h3>
            <p>An 'export' annotation to add to non-static class member functions.</p>
<p>Not defined by default.</p><aside class="m-note m-default"><h4>Remark</h4><p>You might override this with <code>__declspec(dllexport)</code> if you were building the library into the public API of a DLL on Windows.</p></aside>
          </div></section>
          <section class="m-doc-details" id="ga8436c6f378c73f3446a3b6f1e2c5e81c"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga8436c6f378c73f3446a3b6f1e2c5e81c">TOML_EXPORTED_STATIC_FUNCTION</a></span>
            </h3>
            <p>An 'export' annotation to add to <code>static</code> class member functions.</p>
<p>Not defined by default.</p><aside class="m-note m-default"><h4>Remark</h4><p>You might override this with <code>__declspec(dllexport)</code> if you were building the library into the public API of a DLL on Windows.</p></aside>
          </div></section>
          <section class="m-doc-details" id="ga8219bfd7e75587516385b6022b28abc2"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga8219bfd7e75587516385b6022b28abc2">TOML_HEADER_ONLY</a></span>
            </h3>
            <p>Sets whether the library is entirely inline.</p>
<p>Defaults to <code>1</code>.</p><aside class="m-note m-default"><h4>Remark</h4><p>Disabling this means that you must define <a class="m-doc" href="#ga27ee69835a1ddff9dbaf3015b4b08a11">TOML_<wbr/>IMPLEMENTATION</a> in <strong><em>exactly one</em></strong> translation unit 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>

<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++.h"</span></pre></aside>
          </div></section>
          <section class="m-doc-details" id="ga27ee69835a1ddff9dbaf3015b4b08a11"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga27ee69835a1ddff9dbaf3015b4b08a11">TOML_IMPLEMENTATION</a></span>
            </h3>
            <p>Enables the library's implementation when <a class="m-doc" href="#ga8219bfd7e75587516385b6022b28abc2">TOML_<wbr/>HEADER_<wbr/>ONLY</a> is disabled.</p>
<p>Not defined by default. Meaningless when <a class="m-doc" href="#ga8219bfd7e75587516385b6022b28abc2">TOML_<wbr/>HEADER_<wbr/>ONLY</a> is enabled.</p>
          </div></section>
          <section class="m-doc-details" id="ga9c2c03f867eb6d76a5f65b06eeb1186e"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga9c2c03f867eb6d76a5f65b06eeb1186e">TOML_OPTIONAL_TYPE</a></span>
            </h3>
            <p>Overrides the <code>optional&lt;T&gt;</code> type used by the library.</p>
<p>Not defined by default (use <a class="m-doc-external poxy-cppreference poxy-external" href="http://en.cppreference.com/w/cpp/utility/optional.html" target="_blank">std::<wbr/>optional</a>).</p><aside class="m-note m-danger"><h4>Warning</h4><p>The library uses optionals internally in a few places; if you choose to replace the optional type it must be with something that is still API-compatible with <a class="m-doc-external poxy-cppreference poxy-external" href="http://en.cppreference.com/w/cpp/utility/optional.html" target="_blank">std::<wbr/>optional</a> (e.g. <a class="poxy-external" href="https://github.com/TartanLlama/optional" target="_blank">tl::<wbr/>optional</a>).</p></aside>
          </div></section>
          <section class="m-doc-details" id="ga11a3368da40938a6b5cfd898320706f7"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga11a3368da40938a6b5cfd898320706f7">TOML_SMALL_FLOAT_TYPE</a></span>
            </h3>
            <p>If your codebase has an additional 'small' float type (e.g. half-precision), this tells toml++ about it.</p>
<p>Not defined by default.</p>
          </div></section>
          <section class="m-doc-details" id="ga0722fa2c57da6360c7f2ba08c60e1a81"><div>
            <h3>
              <span class="m-doc-wrap-bumper">#define <a class="m-doc-self" href="#ga0722fa2c57da6360c7f2ba08c60e1a81">TOML_SMALL_INT_TYPE</a></span>
            </h3>
            <p>If your codebase has an additional 'small' integer type (e.g. 24-bits), this tells toml++ about it.</p>
<p>Not defined by default.</p>
          </div></section>
        </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>