Commit Graph

239 Commits

Author SHA1 Message Date
Mark Gillard
3f4a540ca6 fixed inconsistent error messages for overlong ints/floats (closes #133)
also:
- added `at_path()` (closes #118)
- added `node_view::operator==`
- updated conformance tests
2022-01-08 00:08:31 +02:00
Mark Gillard
47241d003e fixed permissive acceptance of incomplete CRLF at EOF (closes #132)) 2022-01-05 18:10:50 +02:00
Mark Gillard
7d3770df92 fixed inline tables being mutable through table headers (closes #131) 2022-01-05 16:56:08 +02:00
Mark Gillard
de2413e0ef fixed date parsing when the year has a leading zero (closes #130)
also:
- fixed omitting value part from hex/bin/oct being accepted without error (closes #129)
- added spec bug github template
2022-01-05 12:45:59 +02:00
Mark Gillard
b41e12f736 fixed incorrect unicode scalar sequence transformations (#125)
also:
- fixed extended-precision fractional times causing parse error instead of truncating per the spec (closes #127)
- fixed some non-spec vertical whitespace being accepted as line breaks (closes #128)
- added `format_flags::allow_unicode_strings`
2022-01-04 23:58:22 +02:00
Mark Gillard
f3bd22bff4 fixed some incorrect handling of vertical whitespace when printing TOML to streams
also:
- added `date_time` converting constructors from `date` and `time`
- added `is_key<>` and is_key_or_convertible<>` metafunctions
- exposed `TOML_NAMESPACE_START` and `TOML_NAMESPACE_END` macros to help with ADL specialization scenarios
- added encoder and decoder for `toml-test` (closes #125)
2022-01-03 21:01:32 +02:00
Mark Gillard
6d381b698f Merge branch 'master' into v3 2022-01-02 21:35:50 +02:00
Mark Gillard
d9473b85da updated conformance tests 2022-01-02 21:35:26 +02:00
Mabi19
5aec8a3abe
Update docs (#126)
Since toml++ is now a wrap, update the docs accordingly.
2021-12-29 19:45:29 +02:00
Mark Gillard
3a22b7c237 fixed false-positive warning on clang 13
also:
- updated conformance tests
- CI config tweaks
2021-12-12 15:01:35 +02:00
Robin Sommer
e557e41b05
Fix memory leak (#124)
Fix leak occuring when parsing of a value throws an exception.
2021-12-04 10:21:19 +02:00
Mark Gillard
2d1f6257ca fix for internal over-aligned types on apple clang
they made their compiler a walled-garden too?? fucking assholes
2021-11-25 22:41:56 +02:00
Mark Gillard
ad4ae98af0 added ASan to CI (closes #123)
also:
- made all wrapped array and table iterator internal conversions explicit
- minor example code refactoring
2021-11-25 20:20:22 +02:00
Mark Gillard
307ebd1f47 refactoring 2021-11-15 09:06:03 +02:00
Mark Gillard
9066ac7d01 fixed strong exception guarantee edge-cases
also:
- added `value` copy+move constructor overloads with flags override
`table::ref()` now supports explicit ref categories and cv-qualifiers
2021-11-14 19:24:19 +02:00
Mark Gillard
32df34add2 added prune() to table and array 2021-11-12 20:21:02 +02:00
Mark Gillard
64dd1dbac5 refactoring 2021-11-11 17:54:40 +02:00
Mark Gillard
209e9b6faa added toml::key (closes #82)
also:
- added `table::lower_bound()`
- added `table::emplace_hint()`
- changed `table` key type to `toml::key`
- clarified value initializer static assert messages
- lots of misc refactoring
2021-11-10 22:07:05 +02:00
Mark Gillard
6808825d3f parser performance improvements
also:
- updated msvc toolsets
- minor documentation updates
2021-11-09 13:08:36 +02:00
Mark Gillard
9783a94ed4 minor cleanup 2021-11-07 22:33:02 +02:00
Mark Gillard
76e681da4d added array::at() and table::at() 2021-11-07 21:25:42 +02:00
Mark Gillard
5e2ddc16c8 added clang's enum annotation attributes to all enums
also:
- added `CHANGELOG.md`
2021-11-07 16:36:31 +02:00
Mark Gillard
aa645dd88c added array::replace() (closes #109)
also:
- minor parser cleanup
- updated conformance tests
- documentation fixes
2021-11-06 18:59:47 +02:00
Mark Gillard
16d7ba8480 big parser + utf8 handling refactor 2021-11-05 00:43:42 +02:00
Mark Gillard
ff6f184d30 added parse_benchmark example
also:
- internal parser refactoring
2021-11-04 11:56:03 +02:00
Mark Gillard
f94de96928 fixed missing #include <utility>
also:
- added test for `yaml_formatter`
- formatter refactoring + cleanup
- documentation fixes
2021-11-03 19:11:55 +02:00
Mark Gillard
7b50df796f added toml::yaml_formatter
also:
- fixed parser not correctly round-tripping int format in some cases
- added `TOML_ENABLE_FORMATTERS` option
- added `operator->` to `toml::value`
- refactoring
2021-11-03 12:18:53 +02:00
Mark Gillard
0ffd23d73f removed final from value, array and table
also:
- renamed `TOML_WINDOWS_COMPAT` to `TOML_ENABLE_WINDOWS_COMPAT`
- renamed `TOML_UNRELEASED_FEATURES` to `TOML_ENABLE_UNRELEASED_FEATURES`
- added additional tests
- fixed minor documentation issues
2021-10-31 17:58:42 +02:00
Mark Gillard
87d6c7eef1 renamed default_formatter to toml_formatter
also:
- renamed `TOML_PARSER` option to `TOML_ENABLE_PARSER`
- added `TOML_ENABLE_TOML_FORMATTER` option
- added `TOML_ENABLE_JSON_FORMATTER` option
- added `default_init_flags` param to `array::resize()`
2021-10-30 15:56:14 +03:00
Mark Gillard
f2fe57d21f fixed inf and nan being formatted incorrectly by the json_formatter
also:
- added `formatter_flags::quote_infinities_and_nans`
- made constructors for dates/times accept any integral types
- lots of internal work on formatter base (laying groundwork for more customization)
2021-10-29 23:59:53 +03:00
Mark Gillard
97132cb27c added preserve_source_value_flags
also:
- fixed natvis file for v3 namespace
- small refactors
2021-10-29 16:28:04 +03:00
Mark Gillard
1bf09fe500 added value flags to array + table insert methods (closes #44)
also:
- made single header generation script `#pragma once`-aware
2021-10-29 12:59:59 +03:00
Mark Gillard
467ade4efc fixed issues with dllexport + extern templates 2021-10-27 19:48:45 +03:00
Mark Gillard
18dfcf2314 added formatter indentation flags (closes #120)
also:
- minor refactoring (esp. GNU attributes)
- added documentation about formatters being free to ignore flags where necessary
2021-10-27 16:10:57 +03:00
Mark Gillard
bd9944a31a removed double-bracket requirement for toml::table constructor
also:
- fixed incorrect `noexcept` specifications on many functions
- fixed missing `#include <initializer_list>`
- removed unnecessary uses of `final`
2021-10-26 23:53:27 +03:00
Mark Gillard
dbc078202d removed internal operator""_sz (ADL is a cruel mistress)
also:
- applied clang-format to tests
- added some missing `TOML_API`
2021-10-26 16:49:23 +03:00
Mark Gillard
7da912c45e fixed incorrect clang+GCC flag in meson build script
also:
- renamed `_impl.h` files to `*.inl`
- simplified warning + namespace management boilerplate
- applied clang-format to examples
- bumped minimum required meson version to `0.54.0`
2021-10-26 00:53:57 +03:00
Mark Gillard
337aa82017 Merge branch 'master' into v3 2021-10-25 22:24:25 +03:00
Mark Gillard
47216c8a73 fix meson build script breaking with meson 0.60.0 (fixes #121) 2021-10-25 22:15:23 +03:00
Mark Gillard
516b8e2096 greatly simplified project header structure
also:
- removed `TOML_LARGE_FILES`
- removed unnecessary template machinery (esp. where ostreams were involved)
- made all overloaded operators 'hidden friends'
- documentation fixes
- version bump - this will form the foundation of v3
2021-10-25 01:04:23 +03:00
Mark Gillard
0f589ceba8 added header bookend includes 2021-10-24 13:21:32 +03:00
Mark Gillard
ca76e5d571 project-wide refactoring
- moved implementation-only headers to `/impl`
- replaced `[[nodiscard]]` with `TOML_NODISCARD`
- added `.clang-format` + applied to all files

also:
- added support for Unicode 14.0
- fixed minor documentation issues
- version bump (pre-emptive for next release)
2021-10-23 18:20:49 +03:00
Andrea Pappacoda
fe28ec8d24
build(meson): use override_dependency if supported (#116)
This improves user experience when using tomlplusplus as a Meson
subproject.

With this change users will be able to simply call
dependency('tomlplusplus') and have Meson automatically resolve the
dependency from the subproject if it is not found on the system.

Without this, users always have to explicitly call
dependency('tomlplusplus', fallback:['tomlplusplus','tomlplusplus_dep'])

A lot of saved keystrokes :)
2021-09-22 19:53:27 +03:00
Andrea Pappacoda
73870cef54
build(meson): general improvements and fixes (#115)
Use the / operator instead of join_paths

Use the / operator instead of using "/" in string paths

Use the includedir opt instead of hardcoding "include" in install_subdir

Remove discouraged layout=flat option (mesonbuild/meson#9243)

Remove unneeded Wextra, Wpedantic flags, already added by warning_level

Remove manual -Oz flag when using Clang (mesonbuild/meson#9286)

Make use of : in kwargs consistent
2021-09-22 09:47:15 +03:00
Andrea Pappacoda
6bfdc14b23
build(meson): do not install if used as subproj (#114) 2021-09-21 16:57:05 +03:00
Mark Gillard
9aa7cd8218 updated conformance tests (see #113)
also removed the 'modern C++' meme text from various places
2021-09-07 20:02:00 +03:00
Mark Gillard
f3896b7474 fixed an illegal table redefinition edge case (closes #112)
also:
- fixed incorrect source position in redefinition error messages
- updated conformance tests
2021-09-04 14:52:28 +03:00
Mark Gillard
037bfdd21f release v2.5.0 2021-08-11 18:42:00 +03:00
Mark Gillard
4f21332bdd allow lowercase 't' and 'z' in datetimes (per spec)
also:
- updated conformance tests
2021-07-04 13:58:33 +03:00
Mark Gillard
ba754462b8 fixed linkage error with windows compat mode
also:
- updated conformance tests
2021-06-24 21:08:45 +03:00