There's no new functionality here. It's purely tooling + CI stuff:
- moved `python` => `tools`
- moved documentation images to subfolder
- moved `vs/tests` to tests/vs projects
- moved `vs` solution etc to root
- added semicolons to macros
- added cpp.hint to help VS intellisense
- migrated documentation generation to external lib
auto table = toml::table{{{"value", 10}}};
const toml::node *value = table.get("value");
if(value && value->is_number())
{
double number = value->value_or<double>(0);
cout << number << endl;
}
The original output was 0. This change will output 10.0.
The old way would see that it was an integer (a native type),
then use the integer conversion, but since the type being requested
was a double, it would return the default value.
also:
- fixed a bunch of doxygen parsing issues
- added `#define` leak detection to the single-header script
- renamed `TOML_ALL_INLINE` to `TOML_HEADER_ONLY` (the old one still works too)
- simplified abi namespace definitions
also:
- added ability to construct values from wide strings and u8 strings
- added non-template version of array::is_homogeneous()
- added explicit instantiations for more template types when `!TOML_ALL_INLINE`
- cleaned up abi namespaces
- simplified build and test machinery on windows
- removed TOML_CHAR_8_STRINGS since it no longer makes sense
also:
- fixed infinity and NaN-related code breaking when using -ffast-math and friends
- added much more detail to many static_assert error messages
- added more test permutations of various compiler flags
- added many more static checks to test code
also added support for wide strings on Windows (closes#42):
- added wide-string path arg overloads of `parse()` and `parse_file()`
- added wide-string support to all relevant `table` and `array` ops
- added `std::wstring` support to `node::value()` and `node::value_or()`
- added `std::wstring` support to `node_view::value()` and `node_view::value_or()`
- added wide-string overloads of `table::operator[]`
- added wide-string overloads of `node_view::operator[]`
- added `source_region::wide_path()`
- added `TOML_WINDOWS_COMPAT` switch for explicitly enabling/disabling this stuff
also:
- fixed internal macro `assert_or_assume` leaking out of `toml_parser.hpp`
- deprecated `node_view::get()` in favour of `node_view::node()`
- minor documentation fixes
- minor cleanup
also:
- fixed value comparison with special floats
- added all the remaining conformance tests from BurntSushi/toml-test and iarna/toml-spec-tests
- added toml::inserter
- added license boilerplate to test files
- added doxygen page for the configuration options
- added SPDX-License-Identifiers around the place
- changed TOML_UNRELEASED_FEATURES default to 0
- simplified ABI namespace machinery
- fixed a number of doxygen bugs
also:
- fixed parser not handling floats with leading '.' characters
- added `TOML_PARSER` configuration option
- added `TOML_LIB_SINGLE_HEADER` indicator
- moved parse_error and the utf8 stream machinery to separate headers
- updated catch2
also:
- fixed some parsing and printing ops being locale-dependent (fixes#19)
- fixed pkgconfig subdir being wrong (fixes#23)
- fixed some parsing errors at EOF when `TOML_EXCEPTIONS = 0`
- fixed some unreferenced variable warnings on older compilers
- fixed some 'maybe-uninitialized' false-positives on GCC9
- added debug/release awareness to CI tests
- added locale awareness to catch test runner
see https://github.com/toml-lang/toml/issues/698 for info about TOML v1.0.0
also:
- fixed some parser error-paths not returning early enough when exceptions were disabled
- added more specific error messages for parsing errors relating to prohibited codepoints
- added compilation speed improvements (particularly for platforms lacking floating-point `std::to_chars`)
- added many minor documentation improvements
- added additional tests
also:
- fixed EOF bug in string parsing when exceptions are disabled
- fixed exception mode detection sometimes being incorrect on MSVC
- added short-form license preamble to all source files
- simplified license files
also:
- decoupled `TOML_EXCEPTION` from ex. mode (closes#13)
- added `TOML_OPTIONAL_TYPE` customization point
- added tests for a custom optional type
- ci refactoring
also:
- fixed truncation of floating-point values when using ostreams
- fixed some minor documentation issues (fixes#8)
- fixed missing value deduction guides for dates and times
- added serialization round-trip tests (closes#9)
- added node::is_number()
- added node_view::is_number()
- added node_view::value_or() (closes#7)
- added hexfloat parsing support for all implementations, not just <charconv> ones
- added `toml::is_number<>`
- added `toml::node_type::none`
- added initializer_list and vector relops to `toml::array`
- added constructors for `time_offset` and `date_time`
- added much to `node_view`
- added tests for `node_view` value relops
- added lots more documentation
- removed `time_offset::from_hh_mm`
- removed the handling of `\s` literals (looks like it's not going be accepted as-is)
also:
- moved node_of to impl namespace
- added a lot more documentation
- fixed some bugs in the documentation generator
- fixed the license ID breaking github's license recognition
also:
- fixed column numbers being wrong when a value ended at EOF
- fixed some `print_to_stream` overloads for `char8_t`
- fixed a minor preprocessor snafu on MSVC
- fixed '\' not being escaped when printing string values
- added an initializer list constructor for tables
- added `array::flatten`
- added `table::find`
- added `table::is_inline` setter
- added `TOML_SMALL_INT_TYPE`
- added `parse_file`
- added stream operator for source_region
- added proper license notice for the utf8 decoder
- added lots more documentation and tests
also
- added many member functions to `array`
- added more documentation
- added format_flags
- added some additional cleaning steps to `generate_single_header.py`
- made formatters work for any node type, not just tables
- fixed documentation header obscuring content during jumps
also:
- merged all the separate integer parsing functions
- renamed the member functions of parse_error for clarity
- added the beginnings of a doxygen pipeline
new file: .editorconfig
new file: .gitattributes
new file: .gitignore
new file: .gitmodules
new file: LICENSE
new file: README.md
new file: examples/example.cpp
new file: examples/example.toml
new file: examples/meson.build
new file: include/toml++/toml.h
new file: include/toml++/toml_array.h
new file: include/toml++/toml_common.h
new file: include/toml++/toml_formatter.h
new file: include/toml++/toml_node.h
new file: include/toml++/toml_node_view.h
new file: include/toml++/toml_parser.h
new file: include/toml++/toml_table.h
new file: include/toml++/toml_utf8.h
new file: include/toml++/toml_utf8_generated.h
new file: include/toml++/toml_value.h
new file: meson.build
new file: python/ci_single_header_check.py
new file: python/generate_single_header.py
new file: python/generate_unicode_functions.py
new file: tests/catch2
new file: tests/catch2.h
new file: tests/lifetimes.cpp
new file: tests/main.cpp
new file: tests/meson.build
new file: tests/parsing_arrays.cpp
new file: tests/parsing_booleans.cpp
new file: tests/parsing_comments.cpp
new file: tests/parsing_dates_and_times.cpp
new file: tests/parsing_floats.cpp
new file: tests/parsing_integers.cpp
new file: tests/parsing_key_value_pairs.cpp
new file: tests/parsing_spec_example.cpp
new file: tests/parsing_strings.cpp
new file: tests/parsing_tables.cpp
new file: tests/tests.cpp
new file: tests/tests.h
new file: toml.hpp
new file: vs/.runsettings
new file: vs/example.vcxproj
new file: vs/test_char.vcxproj
new file: vs/test_char8.vcxproj
new file: vs/test_char8_noexcept.vcxproj
new file: vs/test_char_noexcept.vcxproj
new file: vs/test_strict_char.vcxproj
new file: vs/test_strict_char8.vcxproj
new file: vs/test_strict_char8_noexcept.vcxproj
new file: vs/test_strict_char_noexcept.vcxproj
new file: vs/toml++.natvis
new file: vs/toml++.props
new file: vs/toml++.sln
new file: vs/toml++.vcxproj
new file: vs/toml++.vcxproj.filters