NeBuild dev
Loading...
Searching...
No Matches
toml.hpp
Go to the documentation of this file.
1//# This file is a part of toml++ and is subject to the the terms of the MIT license.
2//# Copyright (c) Mark Gillard <mark.gillard@outlook.com.au>
3//# See https://github.com/marzer/tomlplusplus/blob/master/LICENSE for the full license text.
4// SPDX-License-Identifier: MIT
5#ifndef TOMLPLUSPLUS_HPP
6#define TOMLPLUSPLUS_HPP
7
8#define INCLUDE_TOMLPLUSPLUS_H // old guard name used pre-v3
9#define TOMLPLUSPLUS_H // guard name used in the legacy toml.h
10
11#include "impl/preprocessor.hpp"
12
17
18// misc warning false-positives
19#if TOML_MSVC
20#pragma warning(disable : 5031) // #pragma warning(pop): likely mismatch
21#if TOML_SHARED_LIB
22#pragma warning(disable : 4251) // dll exports for std lib types
23#endif
24#elif TOML_CLANG
25TOML_PRAGMA_CLANG(diagnostic ignored "-Wheader-hygiene")
26#if TOML_CLANG >= 12
27TOML_PRAGMA_CLANG(diagnostic ignored "-Wc++20-extensions")
28#endif
29#if TOML_CLANG == 13
30TOML_PRAGMA_CLANG(diagnostic ignored "-Wreserved-identifier")
31#endif
32#endif
33
34#include "impl/std_new.hpp"
35#include "impl/std_string.hpp"
36#include "impl/std_optional.hpp"
40#include "impl/date_time.hpp"
41#include "impl/at_path.hpp"
42#include "impl/path.hpp"
43#include "impl/node.hpp"
44#include "impl/node_view.hpp"
45#include "impl/value.hpp"
46#include "impl/make_node.hpp"
47#include "impl/array.hpp"
48#include "impl/key.hpp"
49#include "impl/table.hpp"
51#include "impl/unicode.hpp"
52#include "impl/parse_error.hpp"
53#include "impl/parse_result.hpp"
54#include "impl/parser.hpp"
55#include "impl/formatter.hpp"
59
60#if TOML_IMPLEMENTATION
61
62#include "impl/std_string.inl"
64#include "impl/node.inl"
65#include "impl/at_path.inl"
66#include "impl/path.inl"
67#include "impl/array.inl"
68#include "impl/table.inl"
69#include "impl/unicode.inl"
70#include "impl/parser.inl"
71#include "impl/formatter.inl"
75
76#endif // TOML_IMPLEMENTATION
77
79
80// macro hygiene
81#if TOML_UNDEF_MACROS
82#undef TOML_ABI_NAMESPACE_BOOL
83#undef TOML_ABI_NAMESPACE_END
84#undef TOML_ABI_NAMESPACE_START
85#undef TOML_ABI_NAMESPACES
86#undef TOML_ABSTRACT_INTERFACE
87#undef TOML_ALWAYS_INLINE
88#undef TOML_ANON_NAMESPACE
89#undef TOML_ANON_NAMESPACE_END
90#undef TOML_ANON_NAMESPACE_START
91#undef TOML_ARCH_AMD64
92#undef TOML_ARCH_ARM
93#undef TOML_ARCH_ARM32
94#undef TOML_ARCH_ARM64
95#undef TOML_ARCH_BITNESS
96#undef TOML_ARCH_ITANIUM
97#undef TOML_ARCH_X64
98#undef TOML_ARCH_X86
99#undef TOML_ASSERT
100#undef TOML_ASSERT_ASSUME
101#undef TOML_ASSUME
102#undef TOML_ASYMMETRICAL_EQUALITY_OPS
103#undef TOML_ATTR
104#undef TOML_CLANG
105#undef TOML_CLANG_VERSION
106#undef TOML_CLOSED_ENUM
107#undef TOML_CLOSED_FLAGS_ENUM
108#undef TOML_COMPILER_HAS_EXCEPTIONS
109#undef TOML_COMPILER_HAS_RTTI
110#undef TOML_CONST
111#undef TOML_CONST_GETTER
112#undef TOML_CONST_INLINE_GETTER
113#undef TOML_CONSTRAINED_TEMPLATE
114#undef TOML_CPP
115#undef TOML_DECLSPEC
116#undef TOML_DELETE_DEFAULTS
117#undef TOML_DISABLE_ARITHMETIC_WARNINGS
118#undef TOML_DISABLE_CODE_ANALYSIS_WARNINGS
119#undef TOML_DISABLE_SPAM_WARNINGS
120#undef TOML_DISABLE_SPAM_WARNINGS_CLANG_10
121#undef TOML_DISABLE_SPAM_WARNINGS_CLANG_11
122#undef TOML_DISABLE_SUGGEST_ATTR_WARNINGS
123#undef TOML_DISABLE_SWITCH_WARNINGS
124#undef TOML_DISABLE_WARNINGS
125#undef TOML_DOXYGEN
126#undef TOML_EMPTY_BASES
127#undef TOML_ENABLE_IF
128#undef TOML_ENABLE_WARNINGS
129#undef TOML_EVAL_BOOL_0
130#undef TOML_EVAL_BOOL_1
131#undef TOML_EXTERNAL_LINKAGE
132#undef TOML_FLAGS_ENUM
133#undef TOML_FLOAT_CHARCONV
134#undef TOML_FLOAT128
135#undef TOML_FLOAT16_DIG
136#undef TOML_FLOAT16_LIMITS_SET
137#undef TOML_FLOAT16_MANT_DIG
138#undef TOML_FLOAT16_MAX_10_EXP
139#undef TOML_FLOAT16_MAX_EXP
140#undef TOML_FLOAT16_MIN_10_EXP
141#undef TOML_FLOAT16_MIN_EXP
142#undef TOML_GCC
143#undef TOML_GCC_LIKE
144#undef TOML_HAS_ATTR
145#undef TOML_HAS_BUILTIN
146#undef TOML_HAS_CHAR8
147#undef TOML_HAS_CPP_ATTR
148#undef TOML_HAS_CUSTOM_OPTIONAL_TYPE
149#undef TOML_HAS_FEATURE
150#undef TOML_HAS_INCLUDE
151#undef TOML_HAS_SSE2
152#undef TOML_HAS_SSE4_1
153#undef TOML_HIDDEN_CONSTRAINT
154#undef TOML_ICC
155#undef TOML_ICC_CL
156#undef TOML_IMPL_NAMESPACE_END
157#undef TOML_IMPL_NAMESPACE_START
158#undef TOML_IMPLEMENTATION
159#undef TOML_INCLUDE_WINDOWS_H
160#undef TOML_INLINE_GETTER
161#undef TOML_INT_CHARCONV
162#undef TOML_INT128
163#undef TOML_INTELLISENSE
164#undef TOML_INTERNAL_LINKAGE
165#undef TOML_LANG_AT_LEAST
166#undef TOML_LANG_EFFECTIVE_VERSION
167#undef TOML_LANG_HIGHER_THAN
168#undef TOML_LANG_UNRELEASED
169#undef TOML_LAUNDER
170#undef TOML_LIFETIME_HOOKS
171#undef TOML_LIKELY
172#undef TOML_LIKELY_CASE
173#undef TOML_LINUX
174#undef TOML_MAKE_FLAGS
175#undef TOML_MAKE_FLAGS_
176#undef TOML_MAKE_FLAGS_1
177#undef TOML_MAKE_FLAGS_2
178#undef TOML_MAKE_STRING
179#undef TOML_MAKE_STRING_1
180#undef TOML_MAKE_VERSION
181#undef TOML_MSVC
182#undef TOML_MSVC_LIKE
183#undef TOML_NAMESPACE
184#undef TOML_NEVER_INLINE
185#undef TOML_NODISCARD
186#undef TOML_NODISCARD_CTOR
187#undef TOML_OPEN_ENUM
188#undef TOML_OPEN_FLAGS_ENUM
189#undef TOML_PARSER_TYPENAME
190#undef TOML_POP_WARNINGS
191#undef TOML_PRAGMA_CLANG
192#undef TOML_PRAGMA_CLANG_GE_10
193#undef TOML_PRAGMA_CLANG_GE_11
194#undef TOML_PRAGMA_CLANG_GE_8
195#undef TOML_PRAGMA_CLANG_GE_9
196#undef TOML_PRAGMA_GCC
197#undef TOML_PRAGMA_ICC
198#undef TOML_PRAGMA_MSVC
199#undef TOML_PURE
200#undef TOML_PURE_GETTER
201#undef TOML_PURE_INLINE_GETTER
202#undef TOML_PUSH_WARNINGS
203#undef TOML_REQUIRES
204#undef TOML_RETURN_BOOL_FROM_FOR_EACH_BROKEN
205#undef TOML_RETURN_BOOL_FROM_FOR_EACH_BROKEN_MESSAGE
206#undef TOML_SA_LIST_BEG
207#undef TOML_SA_LIST_END
208#undef TOML_SA_LIST_NEW
209#undef TOML_SA_LIST_NXT
210#undef TOML_SA_LIST_SEP
211#undef TOML_SA_NATIVE_VALUE_TYPE_LIST
212#undef TOML_SA_NEWLINE
213#undef TOML_SA_NODE_TYPE_LIST
214#undef TOML_SA_UNWRAPPED_NODE_TYPE_LIST
215#undef TOML_SA_VALUE_EXACT_FUNC_MESSAGE
216#undef TOML_SA_VALUE_FUNC_MESSAGE
217#undef TOML_SA_VALUE_MESSAGE_CONST_CHAR8
218#undef TOML_SA_VALUE_MESSAGE_U8STRING_VIEW
219#undef TOML_SA_VALUE_MESSAGE_WSTRING
220#undef TOML_SIMPLE_STATIC_ASSERT_MESSAGES
221#undef TOML_TRIVIAL_ABI
222#undef TOML_UINT128
223#undef TOML_UNIX
224#undef TOML_UNLIKELY
225#undef TOML_UNLIKELY_CASE
226#undef TOML_UNREACHABLE
227#undef TOML_UNUSED
228#undef TOML_WINDOWS
229#endif
230
231#endif // TOMLPLUSPLUS_HPP
#define TOML_PRAGMA_CLANG(decl)
Definition preprocessor.hpp:359
TOML_PUSH_WARNINGS
Definition toml.hpp:13
TOML_DISABLE_SWITCH_WARNINGS
Definition toml.hpp:15
TOML_DISABLE_SUGGEST_ATTR_WARNINGS
Definition toml.hpp:16
TOML_DISABLE_SPAM_WARNINGS
Definition toml.hpp:14
TOML_POP_WARNINGS
Definition toml.hpp:78