- Creates a node_view pointing to that node. This is similar to how std::string has a conversion operator creating a string_view of the string.
- Also, enabled the move assignment operator for node_view, but made both copy and move assignment operators lvalue-only to avoid the "misleading assignment" issue (see https://github.com/marzer/tomlplusplus/issues/49#issuecomment-664432777)
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
- 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
also:
- added note about `#include <fstream>` requirements README
- added tests for parse_result
- added array and table iterators to the toml namespace
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:
- merged all the separate integer parsing functions
- renamed the member functions of parse_error for clarity
- added the beginnings of a doxygen pipeline
also:
- added `toml_version.h`
- added version number to toml.hpp
- added `node::visit()`
- added `table::empty()`
- added `array::empty()`
- added version number to `toml.hpp`
- added ostream operator overload for `source_position`
- added tests for string escape sequences
- added tests for + in bare keys (toml/issues/687)
- added tests for hexfloat literals (toml/issues/562)
- added c++20 char8_t detection to meson
- moved third party submodules to `/extern`
- refactored noexcept version of `parse_result` to be more useful
- refactored all code to 'mostly' stick to a 120 column limit
- fixed some minor stuff picked up by gcc9
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