Header-only TOML config file parser and serializer for C++17.
value_flags
not being preserved correctly when inserting into tables and arrays (#108) (@LebJe)toml::value::flags()
not being cleared when std::move
-ing a valuenoexcept(...)
sometimes being incorrectly derived on for_each()
for_each()
compilation error on GCC <= 7 (#197) (@sagi-ottopia, @damirbarr)FLT_RADIX
check getting broken by Intel MKL headers (#202) (@iago-lito)\t
incorrectly formatting as bare keys (@jasmine-zhu, @arp242)\t
and \n
not round-tripping correctly (@arp242)value_or()
.hpp
extension (toml.h
is still present for backwards-compatibility)-Ddefault_library=static
having hidden symbols on GNU compilers (#201) (@vlad0x00)toml::parse_file()
on windows for non-ASCII pathstoml::format_flags::terse_key_value_pairs
TOML_ENABLE_FLOAT16
config (#178) (@Scrumplex)_Float16
(you must explicitly set TOML_ENABLE_FLOAT16
to enable it) (#186) (@benthetechguy)0.61.0
[dotted.table]
source columns sometimes being off by one (#152) (@vaartis)Wnull-dereference
warning on GCC (#164) (@zaporozhets)print_to_stream
ambiguity for size_t
(#167) (@acronce)emplace()
methodstoml::path
utility type (#153, #156, #168) (@jonestristand, @kcsaul)TOML_CALLCONV
source_position
is_homogeneous()
, emplace()
, emplace_back()
, emplace_hint()
at_path()
with an empty stringtoml::array::for_each()
toml::table::for_each()
TOML_EXPORTED_CLASS
, TOML_EXPORTED_MEMBER_FUNCTION
, TOML_EXPORTED_STATIC_FUNCTION
& TOML_EXPORTED_FREE_FUNCTION
\e
when using TOML_ENABLE_UNRELEASED_FEATURES
(toml/790)TOML_ENABLE_UNRELEASED_FEATURES
(toml/891)TOML_API
option in favour new TOML_EXPORTED_X
options
(it will continue to work as it did before if none of the new function export options are defined)compile_library
option (@Tachi107)ubsan_tests
and ubsan_examples
optionsThis is a single-bugfix release to fix an ODR issue for people using header-only mode in multiple
translation units. If you aren't seeing linker errors because of toml::array::insert_at()
,
this release holds nothing of value over v3.0.0.
TOML_API
causing ODR issue (#136) (@Azarael)This release is a major version bump, so it's ABI breaks all around. Any changes that are likely to cause migration issues (API changes, build system breakage, etc.) are indicated with ⚠️.
toml::table
init-list constructor requiring double-bracketsTOML_API
+ extern templates causing linker errors in some circumstancesnoexcept
specifications on many functionsTOML_API
on some interfacestoml::json_formatter
not formatting inf and nan incorrectly<initializer_list>
, <utility>
toml::table
and toml::array
toml::node::ref()
toml::value_flags
constant toml::preserve_source_value_flags
TOML_ENABLE_FORMATTERS
optiontoml::yaml_formatter
toml::value
copy+move constructor overloads with flags overridetoml::table::prune()
toml::table::lower_bound()
(same semantics as std::map::lower_bound()
)toml::table::emplace_hint()
(same semantics as std::map::emplace_hint()
)toml::table::at()
(same semantics as std::map::at()
)toml::node_view::operator==
toml::key
- provides a facility to access the source_regions of parsed keys (#82) (@vaartis)toml::is_key<>
and toml::is_key_or_convertible<>
metafunctionstoml::format_flags::relaxed_float_precision
(#89) (@vaartis)toml::format_flags::quote_infinities_and_nans
toml::format_flags::indent_sub_tables
(#120) (@W4RH4WK)toml::format_flags::indent_array_elements
(#120) (@W4RH4WK)toml::format_flags::allow_unicode_strings
toml::format_flags::allow_real_tabs_in_strings
toml::format_flags::allow_octal_integers
toml::format_flags::allow_hexadecimal_integers
toml::format_flags::allow_binary_integers
toml::date_time
converting constructors from toml::date
and toml::time
toml::at_path()
, toml::node::at_path()
and toml::node_view::at_path()
for qualified path-based lookups (#118) (@ben-crowhurst)toml::array::resize()
param default_init_flags
toml::array::replace()
(#109) (@LebJe)toml::array::prune()
toml::array::at()
(same semantics as std::vector::at()
)parse_benchmark
exampleoperator->
to toml::value
for class typestoml::format_flags
is now backed by uint64_t
(was previously uint8_t
)toml::source_index
is now an alias for uint32_t
unconditionally (was previously dependent on TOML_LARGE_FILES
)toml::table
now uses toml::key
as the key type (was previously std::string
)toml::value_flags
is now backed by uint16_t
(was previously uint8_t
)toml::default_formatter
to toml::toml_formatter
(toml::default_formatter
is now an alias)TOML_PARSER
option to TOML_ENABLE_PARSER
(TOML_PARSER
will continue to work but is deprecated)TOML_UNRELEASED_FEATURES
to TOML_ENABLE_UNRELEASED_FEATURES
(TOML_UNRELEASED_FEATURES
will continue to work but is deprecated)TOML_WINDOWS_COMPAT
to TOML_ENABLE_WINDOWS_COMPAT
(TOML_WINDOWS_COMPAT
will continue to work but is deprecated)TOML_NAMESPACE_START
and TOML_NAMESPACE_END
macros to help with ADL specialization scenarios/impl
.h
and 'source' headers to .inl
toml::format_flags::allow_value_format_flags
TOML_LARGE_FILES
(it is now default - explicitly setting TOML_LARGE_FILES
to 0
will invoke an #error
)final
0.54.0
override_dependency
where supported (#116) (@Tachi107)TOML_CONSTEVAL
broken in MSVC (again)is_container
, is_chronological
, is_value
, is_node
, inserted_type_of
node::value()
not retrieving inf and nan correctlyparse_result
(#96) (@proydakov)TOML_COMPILER_EXCEPTIONS
correctlyparse_result
natvischar8_t
support detection on older compilers#include <Windows.h>
Windows builds (@BeastLe9enD)TOML_CONSTEVAL
breaking on VS 16.10.0pre2TOML_API
declarations#include <fstream>
requirement for parse_file()
<charconv>
with Apple-flavoured clangiterator_category
(#77) (@HazardyKnusperkeks)Wuseless-cast
warnings on GCC 10 (#75) (@HazardyKnusperkeks)<charconv>
on emscripten (#71) (@suy)toml::literals
inline namespace (#69) (@std-any-emplace)_Float16
erroneously detected as supported on g++ (#57) (@sobczyk)<Windows.h>
causing compilation failure on mingw (#63) (@rezahousseini)operator==
error on MSVC (#56) (@HellsingDarge)snake_case