Alexander Karzhenkov
Alexander Karzhenkov
Is the following really needed? ``` ...\test\src\unit-concepts.cpp(124): ERROR: CHECK( std::is_standard_layout::value ) is NOT correct! ```
Modified `json` may have two (or more) base classes of the same type, and thus not to be `StandardLayout`. This may happen if there are identical types in argument pack...
There are no identical bases. Moreover, direct identical bases are not allowed.
It seems the issue is caused by `std::optional` intented desing and language standard, not by implementation features. Perhaps it would be better to disable implicit conversions from `json` to `std::string`,...
MSVC has bad `std::is_standard_layout`. Here is a [sample](https://godbolt.org/z/U6DJ3Z). By the way, I see no reason why _StandardLayoutType_ concept may be useful when using `json`.
Here is a "better" `optional` that probably allows to achieve the desired behavior. The `nlohmann::optional` class is derived from its standard counterpart and defines some constructors. The goal of these...
Rebased, but there is a test failure. Codacy test is probably excessively strict. It requires single-argument constructors to be explicit, but even `std::optional` doesn't meet this. The implicit conversions that...
I hope the includes are arranged properly now. However, `ci_single_binaries` is cancelled. This is propably caused by wrong test environment, not by actual problem in the code. The test log...
It's not clear if `std::optional` has `noexcept` default constructor in GCC 8.1. Actually, it isn't declared `noexcept` there. This can be checked in [the example](https://godbolt.org/z/v5vE1bcbh) at godbolt. However, after the...
The remaining problems are related to three-way comparisons in C++20. I hope to fix them when I have time.