* Make exception context optional
Change exception context parameter to pointer and replace context with
nullptr where appropriate.
* Support escaping other string types
* Add string concatenation function
Add variadic concat() function for concatenating char *, char, and
string types.
* Replace string concatenations using + with concat()
* Template json_pointer on string type
Change json_pointer from being templated on basic_json to being
templated on string type.
* Add unit test for #3388Closes#3388.
* Fix regression test for #2958
* Add backwards compatibility with json_pointer<basic_json>
* Update json_pointer docs
* Allow comparing different json_pointers
* Update version numbers
Constrain from_json() overload for StringType to not accept json_ref and
require it to be assignable, instead of constructible, from
basic_json::string_t.
Re-enable C++14 tests on Clang <4.0.
Fixes#3171.
Fixes#3267.
Fixes#3312.
Fixes#3384.
* ⬆️ use new CI image
* ⬆️ use new CI image
* 🚨 suppress Clang-Tidy warnings
* 💚 use proper scan-build version
* 🚨 suppress Clang-Tidy warnings
* ⬆️ use more recent GitHub actions
* 💚 add missing compiler
* 📝 update used compilers
* 🚨 fix duplicate inclusion
AppVeyor build VMs should provide at least two cores. Parallelize builds
and tests.
In addition, enable output on failure and disable verbose test output.
Restore the previously disabled check for regression #3070 on all
compilers but MSVC.
To summarize the issue:
Given namespace fs = std::filesystem.
On MSVC attempting to construct an fs::path from json results in an
ambiguous overload resolution because fs::path can be constructed from
both a std::string as well as another fs::path.
To the best of my knowledge there is no way to fix an ambiguous overload
situation involving a type we do not control and with json implicitly
converting to both std::string and fs::path.
Re-enabling the check where it compiles and keeping it disabled for MSVC
is the best we can do.
Closes#3377 and #3382.
* Avoid clash with Arduino defines
* Arduino defines B0/B1 in "binary.h"
#define B0 0
#define B1 1
This clashes with names of the template
variables in conjuction
* Renaming them to "B" rather than "B1"
Now it can be used as-is in Arduino projects
* Apply suggestions from code review
* Apply suggestions from code review
Co-authored-by: Daniel Ansorregui <d.ansorregui@samsung.com>
Co-authored-by: Niels Lohmann <niels.lohmann@gmail.com>