The library was checking if Boost version is not below 1.73. This is an
artifact of pre-inclusion to Boost times. Currently in non-standalone mode the
library is only supported in Boost versions it is included with, so the
check is unnecessary. Moreso, the check caused errors when standalone
library was used alongside Boost.
Replaced usage of BOOST_CURRENT_LOCATION with BOOST_JSON_SOURCE_POS.
Using BOOST_CURRENT_LOCATION results in warnings (and could probably
lead to ODR violations) when Json is used standalone, but alongside
Boost.
close#477
The "cxxstd" json field is being added to each Boost library's meta
json information for libraries whose minumum C++ standard compilation
level is C++11 on up. The value of this field matches one of the values
for 'cxxstd' in Boost.Build. The purpose of doing this is to provide
information for the Boost website documentation for each library which
will specify the minimum C++ standard compilation that an end-user
must employ in order to use the particular library. This will aid
end-users who want to know if they can successfully use a Boost
library based on their C++ compiler's compilation level, without
having to search the library's documentation to find this out.
close#465
value_to and value_from was incorrectly deducing that std::string was
"array-like" rather than "string-like", but only on msvc-14.0
Original test:
template<class T, typename std::enable_if<
std::is_constructible<remove_cvref<T>, const char*, std::size_t>::value &&
std::is_convertible<decltype(std::declval<T&>().data()), const char*>::value &&
std::is_convertible<decltype(std::declval<T&>().size()), std::size_t>::value
>::type* = nullptr>
Which works for all compilers except msvc-14.0
New test:
template<class T, typename std::enable_if<
std::is_constructible<remove_cvref<T>, const char*, std::size_t>::value &&
std::is_convertible<decltype(std::declval<T&>().data()), const char*>::value &&
std::is_integral<decltype(std::declval<T&>().size())>::value
>::type* = nullptr>
Note that each individual test works on all compilers. It seems to be
the conjuction of tests that caused msvc-14 to trip up.